Перед заполнением сохраните текущую ячейку:
DataGridViewCell selectedCell = dgv.CurrentCell;
Затем после заполнения установите его обратно:
dgv.CurrentCell = selectedCell;
Если вам не важно, какая ячейка была выбрана, а просто хотите прокрутить вид назад до того места, где он был до заливки, вы можете использовать свойство FirstDisplayedCell
.
Я полагаю, что это сработает, но я не использовал их в вашем конкретном сценарии (что звучит немного странно).
Кстати, в DataGridView много событий, что дает большую гибкость, но вы должны внимательно прочитать документы, чтобы понять все ваши варианты.