Lo primero que encontré...
No sé para que necesites insertar componentes por código, tal vez sabiendo pudiera que le hayara otra solución....
Lo primero que encontré del tema es una respuesta a tu misma pergunta hecha ya hace tiempo, es probable que ya la hayas leído, espero te sea útil...
"....Creo q lo mejor para insertar un control en tiempo de ejecución es colocar un control previamente en tu formulario y asignarle a su propiedad Index=0. Para q no aparezca en tu formulario colocas su propiedad Visible =False.
Despues en código colocas algo de la forma siguiente:
Load Control1(1)
Control1(1).Visible=True
creando así una matriz de controles.
Si lo que quieres es varios, puedes utilizar un for:
for i=1 to Numero
Load Control1(i)
Control1(i).Visible=True
Next i
O también mediante el evento Click de un CommandButton (por ejemplo):
Private Sub Command1_Click ()
Static i as Integer
i=i+1
load Control1(i)
Control1(i).Visible=True
End Sub
Ah!, y que no se te olvide, cada vez que crees un control, para que no se te solapen uno encima de otro, cambiar sus propiedades Left y Top...."