En .NET han dejado de existir las matrices de elementos, pero puedes crear controles en tiempo de ejecucion sin ningun problema:
Dim oBtn As New Button
oBtn.Name = "Boton1"
oBtn.Left = 10
oBtn.Width=100
Me.Controls.Add(oBtn)
Para capturar los eventos del boton ya es mas complicado, al crearlo dinamicamente le has de asignar el manejador de eventos tambien dinamicamente:
...
oBtn.Width=100
AddHandler Button1.Click, AddressOf Boton1_Click
Me.Controls.Add(oBtn)
...
Y antes declarar la sub que controla el evento:
Private Sub Boton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
If sender.Name = "Boton1" Then
'Se ha pulsado el boton 1
End If
End Sub
Saludos.