How to disable capturing of specific headers only

As far as I know SanitizeFieldNames setting replaces a value with a placeholder for example I have:
"http.request.headers.Accesstoken [REDACTED]"
and this value is sent to the index by the agent.
My assumption is that sanitizing fields does not improve performance as much as removing most of the headers?

That's right, with this you just mask the values, but it won't help you with performance. If the goal is to minimize runtime overhead then only setting CaptureHeaders to false will help, there is not setting to only read specific headers or skip reading specific ones. On the other hand if you want to minimize storage and network traffic you could use the Filter API - with a little bit of a C# code you can manually remove specific headers and those won't be sent to APM server. But those will still be captured by the agent, so in terms of runtime overhead this won't help.

I hope this helps a bit.