Rodegast
Перед скриншотом меняй геометрию окна что бы всё уместилось. Иначе никак.
Нашел следующее решение:
Пихаем table widget в scroll area ставим в нем lay out
В resizeEvent насильно меняем высоту и ширину table widget относительно его содержимого
теперь будем делать скрин не table widget, а scroll area, так как там можно сделать так
image = QtGui.QImage(self.ui.scrollArea.widget().grab())
QtWidgets.QApplication.clipboard().setImage(image, QClipboard.Clipboard)
и на выходе получаем нужного размера скриншот всей таблицы почти без костылей, правильно подогнав размеры таблицы к scroll area, этого костыля не видно.