How can I reduce the PWM noise of a blower motor?
Like most power MOSFETs the IRF3205 has a large Gate capacitance which must be charged and discharged, requiring about 50nC of charge to turn on properly. In your circuit this charge trickles through R1, distorting your nice 12V square wave into a sawtooth that gets smaller as the PWM frequency is increased. To get a good Gate drive waveform at 20KHz you should reduce R1 to about 500&ohm; (to charge the Gate faster) and R2 and R3 to about 1k (to ensure that Q1 turns on fully).        

The 1N4001 is a mains frequency rectifier diode with slow switching action - not suitable for high frequency PWM. You should use a Schottky diode rated for at least 3A continuous.

Software PWM created with DelayMicroseconds() is not very accurate as it doesn't take into account loop overhead, so the PWM frequency will be lower than you expected. Also you must not have any interrupt code running (eg. timer, serial) or the PWM waveform will suffer from glitches that could be audible. If you can still hear it, it's not 20KHz! 

With good Gate drive, a fast flyback diode, and true 20KHz PWM, you should get quiet motor operation.