Per evitare l'uso di array di controlli potresti usare la collezione Controls, per esempio:
codice:
Dim i As Integer
Dim tb As TextBox

For i = 1 To 10
   Set tb = Me.Controls.Add("VB.TextBox", "Text" & Cstr(i))
   tb.Visible = True
   tb.Height = 255
   tb.Top = i * 285
Next
Se ti guardi l'help di VB6 sul metodo Add di Controls c'è un bel esempio che ti potrebbe tornare utile, dov'è trattata la tecnica per intercettare gli eventi.
Riguardo al VB.NET... in ogni caso ti consiglio l'upgrade, ma di certo il nuovo linguaggio non ti risolverà i tuoi problemi con uno schiocco delle dita!