well, this is a bit old, but there is a little problem with looping to set the individual column sortmode, for example, you allow user to add more columns, then you have to re-loop it all again, or find the added column and set it's sortmode. that is a bit of more work.
the solution I found is like this link: Disable sorting when clicking DataGridView column header
in it, you just add an event handler of ColumnAdded for that DataGridView, so every time the datagrid adds column, it is automatically set as not sortable
this is actually just like @OldDog's answer, the difference is that in his answer, the sortmode is set in a roundabout way.
Private Sub DataGridView1_ColumnAdded(sender As Object, e As DataGridViewColumnEventArgs) Handles DataGridView1.ColumnAdded
e.Column.SortMode = DataGridViewColumnSortMode.NotSortable
End Sub