Пару лет назад видел подобную идею, но с прорисовкой подписи человека по скроллу, выглядело достаточно свежо и я тогда пытался разобраться с реализацией. Прямо сходу не вспомню всех нюансов, но тебе точно нужна динамическая прорисовка SVG.
Изучи свойства stroke-dasharray и stroke-dashoffset.
Сначала через svg отрисовываешь нужные линии, а уже JS прорисовывает их в зависимости от процента скролла:
const progress = Math.min(scrollPosition / (documentHeight - windowHeight), 1);
line.style.strokeDashoffset = totalLength * (1 - progress);
};