- Статическая высота основного контейнера.
- Фиксированный "фрейм" для отображения кадров (position: fixed; overflow:hidden), отмасштабированный средствами JS. Внутри него - набор блоков с float:left; (собственно кадры) и блок с рыбкой.
- Крепим нужный Вам триггер функцию, которая в зависимости от положения скроллбара будет изменять позицию всего фрейма и позицию рыбки внутри фрейма.
Получим следующее: крутим вниз: left парамерт фрейма уменьшается на X, left параметр рыбки увеличивается на такой-же X. Получаем смещение фона относительно рыбки и "рамки".
P.S. уменьшать координаты left нужно не самому фрейму, а какой-то дополнительной обертке над кадрами.