I run proxmox on an i7 10700 8c/16t CPU. I have this idea that if I have a gaming VM, I shouldn't over-provision cores and even leave 2 for the host, but is that really the case. Can I somehow ensure VM is basically pinned to say half the cores, and the other half can be fought over by whatever other VMs I'm running and proxmox itself? Could this affect performance on the gaming VM?
You definitely shouldn't overprovision cores (logical cores, 16 in your case), especially for gamming VM. Because you are not going to get more performance, you are only going to increase overhead of context switching.
One way to "pin" VM to half of cores is to give your VM 8 vCPU and increase vCPU units value (default is 1000). vCPU units determines VM priority in case of more work than CPU can handle.