Is possible to achieve design I wanted below?
// this makes .body div not scrollable
// when this set to auto, header div will also scrollable
Seems like a good job for flexbox, here are a few jsFiddle to give you an example:
// Basic flexbox usage
// Based on your constraints / layout
// Working demo with js
Finally here is a more thorough demo with scrollable content: