The Raspbian Buster Screen Configuration utility has a cunningly hidden Configure/Screens/HDMI-1/Resolution menu.
This seems to set the GUI resolution independently of the resolution set in Command Mode (at least on Pi4).
The good thing is that it can be changed in real time on a running Pi (at least on Pi4).
The bad thing is that it seems to set resolution, ignoring screen specific settings in
I have not been able to find any documentation on this utility.
I just tried on a Pi3B+ and it isn't present, so it must be Pi4 only.
I haven't yet tried on VNC.