Этот ответ уже немного устарел, но у меня была такая же проблема.Я решил это с помощью событий jScrollPane, которые запускаются.Когда тело таблицы прокручивается, это событие замечается, и заголовок таблицы вручную устанавливается в правильное положение.
$('table.selection_list').dataTable({
sScrollY: '300px',
sScrollX: '100%',
sScrollXInner: '320%',
bPaginate: false,
bInfo: false,
bFilter: false,
"fnInitComplete": function() {
var table_header,
_this = this;
table_header = $('.dataTables_scrollHeadInner').css('position', 'relative');
$('body.admin.selections_index').find('.dataTables_scrollBody').bind('jsp-scroll-x', function(event, scrollPositionX, isAtLeft, isAtRight) {
table_header.css('right', scrollPositionX);
}).jScrollPane();
}
});