Hi-speed external ADC
No, it's certainly not possible to directly sample at 500Msps on an Arduino using an external ADC.  Simple maths:


The Arduino can perform 16 million instructions (best case) per second
The ADC performs 500 million samples per second.
500 / 16 = 31.25


Therefore the ADC would be generating 31.25 samples for every clock of the Arduino, so unless you can build in a time compressor (maybe with a flux capacitor too), it just ain't gonna do it.

So you will have to think creatively instead.  A possible solution would involve:


A high speed flash or pipelined ADC, ideally with parallel output.
A large chunk of memory to act as a buffer.
A high speed clock source to set the timing (500MHz?).
Glue logic and counters to take one sample, store it in the buffer, and increment the buffer address.
More glue logic and interfacing to allow the Arduino access to the buffer memory and to control the operation of the sampling system.


This, to me, sounds like a job for an FPGA, and at 500MHz, quite a fast FPGA.  You should investigate some of the FPGA development boards from Xilinx and Altera.