And that would be a good thing. But regardless of the actual efficiency it doesn't take a rocket scientist to figure out that it's not very efficient.
Oh, and I'm not arguing that the OP's code is correct...
Shamino do me a favor and at least try this: I don't know GL so I'm taking some of your code hoping it works.
Put that in a render loop and in between your glBegin() and glEnd() function calls and see what happens. Just try it.
void DrawGrid(int cellsize,float left,float top,float right,float bottom)
if ((right-left)<=cellsize) return;
Now just insert the correct values for cellsze, width, and height and watch. This function only works for grids starting at 0,0 - but you can modify it to create a grid anywhere on screen.
void Render(float timeDelta)
You can also stick these quads into a vertex buffer with some more code.
And I forgot about the multiplies you are incurring when you call glTranslatef() inside of your horrendous loops.