Of course you can. ChildName parameter is a string and you can compose any dynamic string and pass it to the WaitChild method.
Take a note that ChildName should be exactly as it is displayed in the Object Browser (Name property), for instance
Sys.Process('calc').WaitChild('Window("CalcFrame", "Calculator", 1)', 1000)
You can also use wildcards in ChildName to replace dynamic parts of the string, for instance
ParentObj.WaitChild("First part of child name*Second part of child name", 1000);
BTW, you can read
this article (in Russian) which describes how to work with Wait and Find methods