Debes crearlos desde codigo, te paso mi ejemplo que esta combinado con la consulta de una base de datos, solo presta atencion a los CheckBox, en tu caso seria de tipo Button, despues es lo mismo:
SQL = "select distinct C.Descripcion,C.CodCat from Categoria C,Articulos A where C.Baja=0 and A.CodCat=C.CodCat " _
& "order by 1"
Com = New SqlCommand(SQL, MiConexion)
If MiConexion.State = ConnectionState.Open Then
MiConexion.Close()
End If
MiConexion.Open()
Rs = Com.ExecuteReader()
Dim i As Integer = 1
Const fila1 As Integer = 59
Const fila2 As Integer = 89
Const fila3 As Integer = 119
Const fila4 As Integer = 149
Dim c1 As Integer = 1, c2 = 1, c3 = 1, c4 = 1
While Rs.Read()
Dim ch As New CheckBox
ch.Size = New Size(110, 20)
ch.Enabled = False
ch.Checked = True
Select Case i
Case 1 To 3
ch.Text = Rs("Descripcion")
ch.Name = "ch"
ch.Tag = Rs("CodCat")
ch.Location = New Point(18 * c1, fila1)
GrupSecc1.Controls.Add(ch)
c1 += 7
Case 4 To 6
ch.Text = Rs("Descripcion")
ch.Name = "ch"
ch.Tag = Rs("CodCat")
ch.Location = New Point(18 * c2, fila2)
GrupSecc1.Controls.Add(ch)
c2 += 7
Case 7 To 9
ch.Text = Rs("Descripcion")
ch.Name = "ch"
ch.Tag = Rs("CodCat")
ch.Location = New Point(18 * c3, fila3)
GrupSecc1.Controls.Add(ch)
c3 += 7
Case 10 To 12
ch.Text = Rs("Descripcion")
ch.Name = "ch"
ch.Tag = Rs("CodCat")
ch.Location = New Point(18 * c4, fila4)
GrupSecc1.Controls.Add(ch)
c4 += 7
End Select
i += 1
AddHandler ch.Click, AddressOf Ch_Click
End While
Rs.Close()
Cerrar()