Sounds like a fixed position and 100% height are what you’re after:
position: fixed;
height: 100%;
The TwentyFifteen theme uses the following code in style.css:
@media screen and (min-width: 59.6875em) {
body:before {
display: block;
height: 100%;
min-height: 100%;
position: fixed;
top: 0;
left: 0;
width: 29.4118%;
}
.sidebar {
float: left;
margin-right: -100%;
max-width: 413px;
position: relative;
width: 29.4118%;
}
.site-content {
display: block;
float: left;
margin-left: 29.4118%;
width: 70.5882%;
}
Alternative: I’ve been using the 2015 theme and trying to get the left, persistent navigation sidebar to scroll independently of the content, instead of the default behavior.
From a user experience perspective, the user is scrolling the content, not the menu. When both sections scroll simultaneously, the user is encountering a lot more information, when they probably just want to see more of the main body.
If you interested in this alternative, see this SE thread.