I think you cannot get a PWM frequency of 100 kHz with a typical Arduino.
But Iím not an Arduino expert, because I donít like that platform. Not because of the hardware itself, but because of the bad quality code that I see around it.
motox, is not my site
I believe this link is to your personal webpage:https://www.jonis.com.br/2008/05/21/pic-usb-bootloader-facil/#more-55
Thatís why I recommended you to use the PIC18F4550.
If you want to adapt the code for this PIC I can give you some help.
Running at 48 MHz you can get a 100 kHz PWM with a resolution of 8.9 bits:
log(48e6/100e3)/log(2) = 8.9 bits
which results in a resolution of: 10e-6/2^8.9 = ~21 ns.