Мне кажется, вы ищете механическое решение там, где нужно начать со сценария. Вот, допустим, фронт бы справлялся с чем угодно. Зачем таблица из 10000 строк, как с ней работать?
Я бы попытался понять, для каких задач трейдеры используют какой вид сортировки. Зачем нужна сортировка по месяцам? Возможно, у трейдера есть задача найти какой‑то ордер, и он помнит примерно, когда это было? А может, он хочет понять, как его торговая активность изменялась от месяца к месяцу просто из любопытства? Для ответа на эти разные вопросы будет оптимален разный интерфейс. И так нужно разобраться по каждому варианту сортировки.
Как минимум, можно разделить все задачи, связанные с таблицами, на задачи поиска (когда нужно найти конкретное значение) и задачи сравнения (когда нужно увидеть несколько значений рядом друг с другом). Может, вам вообще нужно не про пагинацию думать, а про умные фильтры, быстрый поиск и какие‑нибудь там автоматические отчёты.
Если вы придумаете, как интерфейс будет решать основные задачи трейдеров, то умная пагинация в таблицах вам и не понадобится, потому что трейдерам вообще не придётся ничего листать. Ну, сделаете тупую пагинацию по 100 строк просто на всякий случай. Или, может, сделаете подгрузку очередной порции строк при прокрутке.