Ciao joeykiske
Per il posizionamento puoi ricorrere ai css, riscrivo il file .aspx per mettere una classe al div (e togliere una riga che non serviva)
file .aspx
<body>
    <form id="form1" runat="server">
        <div class="BoxList">
            <%= WriteTextBoxList()%>
        </div>
    </form>
</body>
a questo punto puoi scrivere un .css
.BoxList
{
  border:1px solid green;
  height:300px;
  margin:10px auto 10px auto;
  position: relative;
  width:500px;
}
.myBox
{
   width:100px;
   margin-left:10px;
}
in questo esempio gli input sono dentro al pannello, uno sotto l' altro a 10px del bordo sinistro.
Oppure nel codice puoi impostare delle posizioni assolute per ognuno:
protected string WriteTextBoxList()
{
    int textBoxCount = 5;  // imposti questo valore leggendo qualche condizione
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < textBoxCount; ++i)
    {
        sb.AppendLine("<input type='text' name='Box_" + i +
            "' + class='myBox' style='left:" + i * 10 +
            "px; top:" + i * 30 + "px; '>");
    }
    return sb.ToString();
}
Non è molto leggibile ma funziona, (nel css aggiungi l' absolute):
.BoxList
{
  border:1px solid green;
  height:300px;
  margin:10px auto 10px auto;
  position: relative;
  width:500px;
}
.myBox
{
   width:100px;
   position:asbolute;
}
In questo esempio gli input sono disposti in diagonale.