You really need to read this.
Essentially you can create PWM on any pin at any frequency through software. There are also many Google references that will discuss this. Arduino PWM is handled by the hardware timers using the output compare pins associated with each. The base frequency for Arduino PWM is about 490Hz. This is a combination of using an 8-bit timer and a prescaler pf 64 with phase correct PWM (meaning count up, count down), so 16,000,000/64/256/2 = 488.28125.
If you increase the prescaler, you slow the freq. You can speed it up by changing the TOP value in the OCRnx register. The mega2560 has 15 hardware controlled PWM pins so to get more, you need to use software. Google 'PWM on any pin' and see what pops up.