Try this. You were close; just needed to adjust the looping indices to "circle around."
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim jMax As Integer, iCurr As Integer
Dim iLoop As Integer, idx As Integer
jMax = DataGridView1.Rows.Count - 2
iCurr = DataGridView1.CurrentRow.Index + 1
For iLoop = iCurr To jMax + iCurr
idx = iLoop Mod (jMax + 1)
If DataGridView1.Rows(idx).Cells(3).Value.ToString.ToLower = TextBox4.Text.ToLower Then
DataGridView1.CurrentCell = DataGridView1.Rows(idx).Cells(3)
Exit For
End If
Next
End Sub