Сначала различите два вида расхождения
Их два: равномерный сдвиг — все записи опаздывают (или опережают) одинаково от начала до конца; прогрессирующий дрейф — начало верно, ошибка растёт к концу, иногда до минут. Эта статья о втором — для первого см. сдвинуть весь файл субтитров.
Почему отставание растёт
Корень дрейфа — два разных часа: три самые частые причины — (1) несовпадение частоты кадров: субтитры фильма 24fps на источнике 25fps теряют больше секунды в минуту; (2) видео ускорили или замедлили, а субтитры остались в исходном темпе; (3) VFR-запись (переменная частота кадров) с неровной таймлиней самой по себе. Общее у них: ошибка растёт почти линейно со временем воспроизведения.
Исправить двумя метками
Раз ошибка растёт линейно, достаточно закрепить правильное время на обоих концах и пропорционально перераспределить середину. В редакторе добавьте две метки: поля «текущее» автозаполнены исходными временами файла; вы смотрите видео и вписываете когда первая и последняя записи появляются на самом деле в поля «цель».

Как проверить результат
После запуска панель результата показывает старое и новое время бок о бок. Проверьте три места: первую запись, одну из середины и последнюю — позиции с минимальной, средней и максимальной исходной ошибкой. Сходятся все три — сходится весь файл.

Когда двух меток мало
Коррекция по двум меткам предполагает линейную ошибку. Если источник — VFR-запись со скачком частоты посередине, линейная тяга не выпрямит среднюю часть: возьмите заметно сбитую среднюю запись третьей точкой, разрежьте файл там и прогоните две метки на каждой половине. После исправления пересмотрите среднюю часть на нормальной скорости — локальные остатки расхождения должны отсутствовать.