Very well, that’s how. A quick look reveals that each scene is a section, the assets are linked with data attributes, and the rest is fancy combinations of TweenJS and Three.js animations, coordinated by /assets/js/main.min.js (which also handles the invisible history).
Although they don't appear to use it, there is a project out there which does pathing like this: http://joelb.me/scrollpath/
It's plain HTML5. That scrolling behavior isn't a freebie. The scroll bar you see is actually for an empty div. There's an attached scroll event handler that they're likely using to run the animation.