1. Стоит начать с прослушивания
прокрутки
2. Затем вычислять совпадает ли прокрутка с
координатами секции.
3. При совпадении любым удобным способом получать индекс соответствующего элемента в твоей навигации (можно раздать через data-атрибуты, или просто ловить текущий индекс [поплохеет при разной вложенности]). И задавать ему класс (для подсветки).
Сама навигация должна быть размещена посредством position:fixed.