In general you want to run your render loop at a whole multiple of the display refresh period. Since after a call to SwapBuffers
the next drawing OpenGL call will block until the actual swap got executed this automatically limits you to the display refresh frequency. No need to implement a custom timing scheme.
Only if you disabled V-Sync in the graphics drivers you'll may run faster than the display refresh.