Potresti, per ottimizzarlo, usare un "trucchetto"

chiamando tutte le textbox con lo stesso nome numerato, potresti ricavarle molto facilmente con il comando FindControl(nomeControllo) che prende una stringa in ingresso, e dunque puoi ricercare nomi creati dinamicamente, ad esempio in un for:

For i As Integer = 0 To x
Dim txt As textBox = Me.FindControl("textBox" & i)
Next

In questo modo puoi anche fare meno controlli, perchè per ogni textbox non dovresti controllare tutte le altre textbox, ma solo quelle successive, in quanto il confronto con quelle antecedenti è già stato fatto:

For i As Integer = 0 To x
- Dim txt As textBox = Me.FindControl("textBox" & i)
- For j As Integer = i+1 To x
- - Dim txt2 As textBox = Me.FindControl("textBox" & j)
- - If txt.Text = txt2.text then
- - - 'fai quello che devi fare
- - End if
- Next
Next