I think this is normal behavior for many controls including .Net controls. For example, you editing text inside a richtextbox, you could scroll down to see other text but the cursor in the control is still wherever it is before.
I don't know if gridView exposes the scrollbar's position or not. If it is, you could save that information before update and restore it after endupdate.
I just saw an example relating to scrolling information here
You could also remember the selected row index before the begin update operation, and just reselect that row before the EndUpdate() operation (or just after, depending on the operations performed), this will keep the grid at it's previous position.
Hope this helps, if you have any other questions or comments, please let me know,