On a system where the clock speed is 16MHz? No. It takes more than one clock cycle to toggle a pin. Even if it did take only one, there would be no time for the Arduino to do anything else, like looping.
"8.9 Clock Output Buffer
The device can output the system clock on the CLKO pin. To enable the output, the CKOUT Fuse has to be programmed. This mode is suitable when the chip clock is used to drive other circuits on the system. The clock also will be output during reset, and the normal operation of I/O pin will be overridden when the fuse is programmed. Any clock source, including the internal RC ?Oscillator, can be selected when the clock is output on CLKO. If the System Clock Prescaler is used, it is the divided system clock that is output."
The CLK0 pin is PORTB pin 0 which on the UNO is known as Pin 8.
You will need an ISP device to set the proper fuse bit. That's bit 6 of the Fuse Low Byte. Set it to 0 to activate the clock output buffer. In boards.txt you would change:
uno.bootloader.low_fuses=0xff
to
uno.bootloader.low_fuses=0xBF
Then re-burn the bootloader. (Part of the bootloader burning is setting the fuses.)
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.
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.
In that case I'm not sure which pin is attached to OCR2B, tends to vary between processors, but the pin should have "OC2B" as one of its names. In fact check the datasheet to see if it has a timer2(!)