I have a 2 core 2 thread cpu and I want to pin one core for a Windows 10 VM and keep the other for the Linux host.
You cannot assign specific cores to specific machines (host or guest) with either:
VMware Workstation: Number of processors and cores per processor. You can assign 1 core in your situation but the core used may vary.
Hyper-V: Number of virtual processors and then from there, you can load balance. But again, that does not assign specific cores to specific machines - it may vary.
I checked both setups here (2 different computers).
I am not sure about Virtual Box, but I do not think it is much different.