Yeah, code there is a bit incorrect.
Projection matrix is fine - it uses width and height for size that game expects image to be rendered in.
The wrong thing is call to glViewport function - it sets up area in which OpenGL will be rendering. Currently it uses same width and height as render commands, which is incorrect (only half size for width/height). Instead it should use WindowWidth and WindowHeight that is passed in OpenGLRenderCommands arguments. That will set up viewport to cover full window. Then image will be stretched to full window size, if that's what you want. Ideally of course it should keep aspect ratio the same, but for now you can simply ignore that.
Another thing to try would be to set HANDMADE_STREAMING define to 0. By default it is set to 1 and that disables double buffering. Maybe double buffering will increase performance for you.