I stand corrected, my apologies. You don't have to have a control array for Controls.Add, just for the Load statement. (By the way, I don't mean to split hairs here, but the Load statement isn't a method, any more than, say, the Open statement is. There's a class of valid commands in VB that predate the use of dot notation, and the official term for them is statement. Any command that has the syntax "command arglist" rather than "object.method[(]arglist[)]" is of this class.)
I would add to dilettante's comments that if you're going to attempt to site the control, you have to know a good deal about the kind of positioning properties they have, or you'll start throwing errors when you try to position them. My feeling is that if you don't limit the list of controls in some way to a known list (possibly a very large known list), your program will hang on some of the controls selected.