Scroll margins minor mode. This behaviour is also known as SmoothScrolling.
Other modules with similar functionality are: scroll-in-place.el by Eric Eide, and smooth-scrolling.el by Adam Spiers. In emacs-20 and later, scroll margins can be controlled by the variables scroll-margin, scroll-conservatively, and scroll-step.