Советую посмотреть книгу Бланшет,Саммерфилд - "QT4 Программирование GUI на С++".
Там есть пример создания приложения электронной таблицы с возможностью групповой сортировки (глава 3 -> spreadsheet )...
Я думаю, что можно и под Ваши требования переделать...
Дополнение:Если отталкиваться от того примера, то можно попробовать добавить ещё один унарный предикат, для алгоритма std::partition, в котором для названий стран "Казахстан" и "Россия" возвращать true.
Потом в методе sort класса Spreadsheet вместо простого вызова функции:
qStableSort(rows.begin(), rows.end(), compare);
сначала вызвать функцию std::partition, а уже затем для каждого поддиапазона вызывать qStableSort.