To rotate about the point <x,y,z>:


GL.Translate(x,y,z);
GL.Rotate(...);
GL.Translate(-x,-y,-z);



That suggests that your projection matrix doesn't match the aspect ratio of the viewport.