Le possibilità sono tre:
* crei un array di textbox (imposti cioè la proprietà Name e Index per ogni controllo TextBox)
* ti crei un textbox personalizzato, derivandolo dal Textbox standard
* fai un subclass del controllo, intercettando la WindowProc del controllo
La soluzione più semplice è la prima, ma comporta l'impossibilità di assegnare un nome diverso per ogni Textbox. Avrai quindi tanti anonimi Text1(indice), poco male.
La soluzione più potente è la seconda ma i problemi che sorgono non sono di facile soluzione. Occorre infatti incapsulare la TextBox originale dentro un UserControl, ma alcune proprietà di TextBox sono modificabili solo in design-mode (vedi per esempio la proprietà MultiLine) e le cose diventano assai complicate.
La terza soluzione è ancora più complicata, il subclass è un arte difficile e soluzioni imprecise portano spesso al blocco dell'applicazione.