Для этого используйте делегата:
class Delegate(QStyledItemDelegate):
def paint(self, painter, option, index):
super().paint(painter, option, index)
if ((1+index.row()) % 3 == 0): # Every third row
painter.setPen(QPen(Qt.red, 3))
painter.drawLine(option.rect.bottomLeft(), option.rect.bottomRight())
if ((1+index.column()) % 3 == 0): # Every third column
painter.setPen(QPen(Qt.red, 3))
painter.drawLine(option.rect.topRight(), option.rect.bottomRight())
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
v = QTableView()
model = QStandardItemModel(9, 9)
v.setModel(model)
v.show()
v.setItemDelegate(Delegate(v))
sys.exit(app.exec_())