I would like to run a headless / batchmode unity which renders the scene to a camera. However, because headless / batchmode disables the graphics context I have to run a normal mode of Unity.

However, I notice that if I take the window and minimize, hide or even place it behind other windows, the frame rate drops horribly. If the window is not covered up, but some small portion of it is indeed rendering to the screen, then it's frame rate is fine.

Is there any way to increase the frame rate when the window is not shown? Is this some OSX os layer optimization that can be disabled?

OSX automatically shifts the GL context of the window dynamically. Once the window is no longer displayed on the primary monitor, OSX does not use the graphics acceleration tied to that monitor. If it is not displayed on any monitor, then OSX will shift it to a software implementation of OpenGL, thus possibly dropping the frame rate as well as possible enhancements or special shading, etc...