Però trovo strano che un codice come questo non generi errori quando posy supera l'altezza del form
Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Me.VerticalScroll.Visible = True
        Dim arrTB(50) As TextBox, posx As Integer, posy As Integer
        posy = 10
        For I As Byte = 0 To 50
            arrTB(I) = New TextBox
            posx = 24
            posy += 40
            arrTB(I).Location = New Point(posx, posy)
            arrTB(I).Size = New Size(100, 35)
            arrTB(I).Text = I.ToString
            Me.Controls.Add(arrTB(I))
        Next
    End Sub
End Class