Existem legendas que são sincronizadas por "tempo real" (segundos e frações deles), e tem algumas que são sincronizadas por frames.
Algumas vezes se tem versões do mesmo filme com diferentes taxas de frames por segundo, o que faz com que uma legenda sincronizada por frames tenda a ir sempre se "dessincronizando" gradualmente, mesmo se ajustada manualmente no decorrer do filme.
A chave talvez não seja tanto o programa para sincronizar, mas converter a legenda sincronizada com base em frames para sincronização por tempo mesmo.