Serial USB communicating with increasing time gaps

So set up a timer like Blink-Without-Delay that takes a sample every 250us. A stream of analog readings is much more useful if it has a specific period that doesn't change. Remember that micros() works in steps of 4us, so you won't ever get exactly 250us between samples and it's more likely to be much greater than this because your main loop will take 10-100us to execute.

If you find that the jitter is unacceptable, then you must use a timer interrupt to trigger the analog conversion.

analogRead() is deliberately rather slow on the Arduino. There are a number of ways of speeding it up. Some of them involve register manipulation to reduce the precision of the ADC converter but increase its speed of conversion. But the last time I tested it, the standard analogRead() was good for 10 reads per millisecond if you did nothing else.

The communication to the computer can be accelerated significantly by sending binary values instead of text. Send a start byte, four bytes of the millis() reading, two bytes of the analog reading and (optionally) an end byte. This should make your system at least twice as fast. It also saves some computation time in the numeric-to-text conversion.

Excel loves tab-seperated files. If you have a file with tabs in it and you name it ".xls" then Excel will open it as if it is a normal spreadsheet.