forget my previous post. the problem is that the "analogRead(A0)" command already takes 800µs. You can see this using:
t1 = micros();
t2 = micros();
So you won't get more than 1.2kHz sampling rate when you use the "analogRead()" command. There are ways however to speed up the sampling time. You might check other forum posts or the datasheet of the SAM3X8E for that.
in fact if you remove the line
adc_init(ADC, SystemCoreClock, ADC_FREQ_MIN, ADC_STARTUP_FAST);
from your code, the analogRead() takes only 41µs. Then you only need to replace the delayMicroseconds(100) by delayMicroseconds(59) and you should get roughly a 10kHz sampling