This is a tricky one. You can use SetWindowsPos windows api call. To move the header out from the screen. Then when closing the application or on a crash you can put it back. This trick can cause some problems, when there are background stuff happening in windows. I use this only when switching between .exe - form files.
I think a better solution for this problem is to use one Form, but have different UserControls. It will look something like this.
public class MainForm : Form
{
public void AddView(UserControl view)
{
SuspendLayout();
Controls.Add(view);
ResumeLayout(true);
}
}