Hola.. mira.. a nivel web es un poco diferente crear cajas de textos y que de ahi se vayan incrementando cada vez que le des click.
Lo que a mi se me ocurre es crear un Panel e irle agregando las cajas de texto.. y tener un cuadro de texto oculto

, donde voy a almacenar mi contador (lo inicializo en 1 o en el que quiera)
quedando el código como ésto:
botón agregar
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox1.Text = CInt(TextBox1.Text) + 1 'propiedad invisible
Dim i As Integer
Dim cont As Integer = CInt(TextBox1.Text)
For i = 0 To cont
Dim txtBox As New TextBox()
txtBox.ID = "txt"
txtBox.Width = Unit.Pixel(40)
Panel1.Controls.Add(txtBox)
Panel1.Controls.Add(New LiteralControl("<br>"))
Next
End Sub
boton quitar
el mismo código pero cambias
Cita: TextBox1.Text = CInt(TextBox1.Text) + 1
por
Cita: TextBox1.Text = CInt(TextBox1.Text) - 1
y en cuanto al modo vertical la verdad no le veo objeto pero bueno..
ya sería cosa de ajustar las propiedades
Saludos y suerte. . . . .