You say that you want to change the displayed text of each button individually, but you have given no indication of what the source source of this text will be. What is the source of this text?
Why do you call the method "CreateBoundButtonColumn" (Bound) when the comments and the code indicate that it is Unbound?
If it is unbound, then I would suggest using the RowPrePaintEvent to set the cell value
Private Sub DataGridView1_RowPrePaint(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewRowPrePaintEventArgs) Handles DataGridView1.RowPrePaint
DataGridView1.Rows(e.RowIndex).Cells(IndexButtonColumn).Value = SomeStringValue
End Sub
You mention looping through the rows. This indicates to me that the text that you want to assign to the button is related to other values in the row. If it is, then build the "SomeStringValue" as needed.