g.sync matches the monitor refresh rate to the frame output rate of the graphics card.
It is unlikely that any graphics card will be able to generate frames at 144/165 rate.
vsync sets a specific refresh rate which solves image issues, but does not solve input latency issues.
Without matching, you are exposed to screen tearing or input delays.
If you have a GTX10xx series graphics card, you want to implement adaptive vsync.
Via extra driver buffering, you solve such issues.
Read up on it.