How to program 16-bit pwms in the different Arduino boards ?

To get 16bit resolution on a PWM output, you have to have a 16-bit counter. (more or less. The idea of changing the clock rate when using longer time intervals would work. I guess you'd get prescaler_bits*timer_bits of overall resolution, with possible holes due to not all prescaler variables being available.) The Uno only has one 16bit timer, and the MEGA only has 4 (Timer/Counter 1, 3, 4, and 5; I don't know if those are the ones brought out to pins.) It looks like the sam3x has a dedicated "PWM controllers" (w 16bit counters) rather than driving PWM off of more general purpose timers, but I'm not very familiar with the ARM chips.

Why do the PWM pin are indicated on pin number 2 to 13 on arduino boards !! ?

Someone decided that it would be nice to group the PWM pins "together" as board outputs. The board pin-numbers are completely unrelated to chip pin numbers, and reflect some combination of "logical grouping" and "ease of PCB routing."