I solved the problem following way:
Instead of having a fixed row height, I make sure that the gridview is always filled to its pagesize. I do this by taking the number of rows from the table and dividing by grid's page size. The decimal fraction is the number of rows I manually need to fill into the dataset prior to binding:
Example: If rows = 26 and page size = 10, then I need to fill 4 rows manually (26/10 = 2,6 and then 10 - 6 = 4)
Code:
'Manually fille rows, uses number of rows from table - grid page size
Dim ShortFullPage As Double = myDataSet.Tables("myDataTable").Rows.Count Mod GridView1.PageSize
Dim ManualRowsNeeded As Integer = GridView1.PageSize - ShortFullPage
Dim i As Integer
For i = 0 To ManualRowsNeeded - 1
myDataSet.Tables("myDataTable").Rows.Add(myDataSet.Tables("myDataTable").NewRow())
Next i