You can file a feature request asking that the table scroll position be stored with the tableState. In the mean time, try using a jsFunction to store the scroll position of the datatable, and apply it back again on page reload.
thanks for the answer. The problem is not storing the information about the currently visible rows - this is indeed done very well in 'componentState'. The problem is that this value is being reset during page reload. It seems that while page reloading the table works with correct values during the 'APPLY_REQUEST_VALUES' Phase, but resets these values in 'RENDER_RESPONSE'. I'm not 100% sure what really happens, so will do further tests and file a jira issue afterwards.