Rather than making the entire modal panel scroll, break it down into zones. You can use the brute-force HTML element or a JSF
h:dataGrid (1x1 cell grid), whichever you prefer. Use one zone to hold the header and the other to hold the content and make only the content zone scrollable.
Variants of this approach include making a 1x2 grid with the header in the top cell and a nested div or 1x1 grid in the bottom cell. Same deal - make the content area scroll and leave the header area fixed.