I think your simulation is correct. A 100 meter fall should be 4.5 seconds on earth gravity (ignoring air resistance). And those 4.5 seconds seem to match the time in the video.
I think it is fine. I believe the "under water" impression comes from the size of the ball.
Doing a rough estimation of the size of the ball, I think it has about 10 meters of diameter. The volume would be 523.599 cubic meters (thanks Wolfram|Alpha).
That is a big ball, with only 1kg, the density is 1.90986 g/m^3 (thanks again Wolfram|Alpha), this is the density of air as per Wikipedia: 0.001225 g/cm^3. So, we see a ball moving through a medium much denser than it. Yeah, I think the "under water" feeling is purely psychological based on the size of the ball relative to the span it moves.
Your mind imagines the ball smaller, and the fall distance shorter, and then the fall is too slow, as if the medium were too dense. Draw some background, some tall buildings for reference, and your mind will get the right cue. I apologize for reading your mind without permission.
That does not mean you are handing OpenGL coordinates correctly. There is a mistake when it comes to resizing the view port. Which is something that probably you do not do at all, which means that what I describe below has nothing to do with the "under water" feeling...
Take premise that the coordinates in OpenGl goes from -1 to 1. These are called normalized device coordinates (NDC). They are not what you see. What you see are screen coordinates (SC). There is a transformation that must happen to map normalized device coordinates (that go from -1 to 1) to screen coordinates (that are in pixels).
How is that transformation defined? By the view port. You tell OpenGl about the size of your view port, and that is what OpenGL uses to map the NDC to SC for rasterisation.
That means that resizing the view port will make thing appear to move faster or slower in screen because -1 to 1 will stretch to more or less pixels, and the simulation is taking the same time.
Now, before the coordinates were in NDC, they were in whatever scale and dimensions you want when you pass the vertices to OpenGL. You have decided to use a scale factor of 150 and called it meters (you can say it is whatever unit you want, that is not the problem). By the way, you are doing that scaling in a shader, right? RIGHT?
The mistake is that this scale of 150 is fixed. It does not take into account the size of the view port. You need to consider the size of the view port if you want to compensate for the stretching I described earlier.
Please refer to How to setup glOrtho and Viewport and the difference between glOrtho and glViewPort in openGL.
Well, if the size of the window is fixed too, then this is moot. I stand by the statement that the "under water" feeling is psychological.