Do you have a special reason for wanting to use glut? Other ways like glfw are easier to work with.
I've used glut a long time ago, so be carefull with my answers regarding glut:
inside glutDisplayFunc: call Horde3D::render, clearing the screen is not necessary. That's done automatically (at least by the default pipelines). If you are using overlays these have to be cleared explicitly with Horde3D::clearOverlays. After render returned, you should swap buffers with a glut call.
inside glutIdleFunc: call glutDisplayFunc to update the screen even when idle?
Frames per second: You have to implement any limits yourself. Use a timer to determine when the last frame was rendered. If it was a too short time ago, just sleep the remaining time.
Terrain and Maya: The terrain is not a mesh but a texture with size N x N with N being a power of 2 IIRC. The height information is stored in the red (high byte) and green (low byte) of the texture. The blue and alpha channel store information about the normal of the terrain. If you can export this file format using Maya it would work. For a start you could just export the height data to the red and green channel.
Lights and Maya: not possible (someone correct me, if I'm wrong here)
I'd suggest that you start modifying either the Knight or Chicago sample to learn the basics of the engine. Then you don't have to mess around with the details of glut or glfw that much. Depending on your language preferences you might try using one of the bindings, if that's easier for you. The Python binding is really easy to use in combination with pyglet
