First of all I would question the reason the customer has for this request. Is it because he has an application that would suffer from getting transferred and losing the CPU cache it had built up?
If not then any of these settings will not help.
If this is an application that might have better performance due to CPU cache locality then you can select either one of these options but do note that each has its pros and cons:
Core Sharing:
A hyperthreading specific setting. It includes Any which is the default and states the vCPU will share the core with other vCPUs. None; which will state the vCPUs can not share the core with any other vCPU, and internal; which states it can share the core only with vCPU on the same VM.
Selecting None or Internal might help if you have an application that doesn't respond well to other VMs accessing the cache or even the core itself (timing). But this does not guarantee that it will be descheduled based on shares and resource entitlements. This will result in the vCPU getting scheduled on a new core thus accessing a new L1 and L2 caches (or even L3 for NUMA migrations).
This will not result in optimal use of CPU caches but will help reduce the noise another vCPU from another VM can cause.
This option also still allows for VM migration using DRS.
CPU Affinity:
Not a hyperthreading specific setting. You basically "tie" down a vCPU to a specific physical core on the ESXi host. This will result in better usage of CPU caches. This implies a core is a logical processor, not a physical processor when using hyperthreaded systems.
I really can't explain this any better here than Frank Denneman does here with a rightly named blog post: http://frankdenneman.nl/2011/01/11/beating-a-dead-horse-using-cpu-affinity/
Setting either option or both of them together will result in huge management overhead with potential negative results on performance both for the VM in question (if not configured correctly) and other VMs running on the same system.
And neither will result in preferential access to the core since its the CPU scheduler that controls that and he only listens to shares, reservations and entitlements when scheduling time on CPU.