You can't speed it up reliably. SD cards have terrible latency when you start to read in a new area. The read latency can be up to 100 ms. The delays happen at random times as the SD controller tries to optimize read ahead.
In the worst case opening a file could take much longer than 100ms. Use the root directory and have the minimum number of files possible.
Here is part of the SD spec on latency:
4.6.2.1 Read
For a Standard Capacity SD Memory Card, the times after which a timeout condition for read operations occurs are (card independent) either 100 times longer than the typical access times for these operations given below or 100 ms (the lower of the two). The host should use 100 ms timeout (minimum) for single and multiple read operations rather than using TAAC and NSAC.
Faster cards have higher sustained transfer rate but still have the same latency start-up glitches. The Arduino is too slow to take advantage of higher transfer rates.
You may get some advantage by opening a number of files. The only limit on the number that can be open is the amount of RAM you want to use. I think it takes about 30 bytes per file. If you play an open file a second time be sure to call rewind() before playing it again.
Also there will be latency when you call create(file). It needs to read the wave file meta-data and pre-buffer data.