2Mbit write to SD - Is it possible ?

Correct, no DMA on Arduino's Atmega328.

So, hardware SPI on the Arduino can be clocked to 8MHz, but that does not include overhead. Overhead means that you can only send one byte at 8MHz, then there is a pause as the CPU performs instructions to loop and load another byte before you can start sending at 8MHz again. So average throughput is considerably less than 8Mbps.

How much data do you need to transfer in a burst? If it's enough to fit into RAM (not much over 1KB), you can probably read it at 2Mbps into internal RAM, then turn around and write it to SD at leisure before the next burst arrives.

If this is a continuous 2Mbps stream, it's real iffy. That's effectively 4Mbps (2Mbps in + 2Mbps out). At that speed you only get a handful of clock cycles to execute CPU instructions per byte (and one of those is spent on the loop jump, and another is spent toggling SS from input to SD card). That means no data processing, no error checking, no status LEDs, no nothing, just a bytestream. You'd also have to use direct AVR PORT calls and/or inline assembly instructions to reduce the overhead inherent in the built-in Arduino functions (dozens on CPU instructions per call).

Others here with more in-depth knowledge of the Atmega inner workings (how many clock cycles it takes to execute each instruction) could probably do the math to give you a better answer.