Как работает QSqlQueryModel + QTableView:
QSqlQueryModel не сразу отдает все n-кол-во записей в результате, для этого у QSqlQueryModel есть методы fetchMore, canFetchMore, которые вызываются, когда Вы двигаете scroll у вьюхи, поэтому подтормаживает.
When you have large - or perhaps even infinite - data sets, you will need to add items to the model in batches, and preferably only when the items are needed by the view (i.e., when they are visible in the view).
Мне кажется, когда до конца прокручиваешь вьюху, то уже все данные отрисованы, и вьюха пересатает тормозить, т.к. больше она не вызывает fetchMore.
Кстати, заметил, интересную вещь, может опять показалось, но если допустим есть модель и мы что-то в базе поменяли, когда мы делаем прокрутку вьюхи, то у нас будут показываться новые обновленные данные.