Is it possible to toggle a pin at 16MHz?

Firstly you can't generate more than 8MHz since the output of the timers is clocked at the system clock and can only change once per system clock.

To generate 8MHz you'd setup one of the counter-timers like this, using a fast PWM mode with TOP set from a register, here timer2 with OCR2A as the TOP value - this means the timer counts 0,1,0,1,0,1 etc, and setting the other OCR2B to 0 means the relevant pin will toggle at full rate.

void setup ()
{
  pinMode (3, OUTPUT) ;
  TCCR2A = 0x23 ;
  TCCR2B = 0x09 ;
  OCR2A = 0x01 ;
  OCR2B = 0x00 ;
  TCNT2 = 0x00 ;
}

However if you just want an overall 16MHz clock for several devices you can use a xtal-oscillator chip to generate the clock for the 328 as well as other chips - just feed the clock into pin XTAL1 instead of having a xtal there.