Попытаюсь на словах объяснить кастомную реализацию))
Делаем два дива которые скролятся по горизонтали, в оба дива вставляем таблицы, первая это шапка, вторая контент, синхронизируем ширины ячеек этих таблиц чтоб они совпадали, дальше javascriptотм, отслеживаем скролл на верхнем диве, берем scrollLeft и применяем второму диву, надеюсь хоть чуть понятно написал)