GSM handset can use multiple slots. With an RF duplexer it can go full 8 slots but I know of no handset that has a duplexer for GSM. Just too expensive. Without duplexer it can use a maximum of 5, as there is always an unused slot for switching between transmit and receive.
You will be hard pressed to find an operator network that offers greater then class 12, if that. They just cannot afford to give a user that much RF bandwidth. Uplink bandwidth is more precious to them.
All smartphone, GSM and UMTS while in GSM mode can have a voice call using two slots and data channels using other slots going on at the same time as seen by user.
Most smartphones are capable of class 12, some only class 10. (doesn't mean the operator system they are on will allow that much)
multi-slot
class____ Rx______ Tx______ SUM
1________1_______ 1_______ 2
2_______ 2_______ 1_______ 3
3_______ 2_______ 2_______ 3
4_______ 3_______ 1_______ 4
5_______ 2_______ 2_______ 4
6_______ 3_______ 2_______ 4
7_______ 3_______ 3_______ 4
8_______ 4_______ 1_______ 5__ (4 Rx + 1Tx)
9_______ 3_______ 2_______ 5__ (3 Rx + 2Tx)
10______ 4_______ 2_______ 5__ (4 Rx + 1Tx to 3 Rx + 2 Tx)
11______ 4_______ 3_______ 5__ (4 Rx + 1Tx to 2 Rx + 3 Tx)
12______ 4_______ 4_______ 5__(4 Rx + 1Tx to 1 Rx + 4 Tx)
29______ 8_______ 8_______ 16__ Requires Rx Duplexer for simultaneous Tx and Rx.
You have to also steal some Rx slots for neighbor cell site searches periodically.
There are some new higher class numbers that uses frames in asyncronous combination of numbers.
GPRS is binary min shift keying, EDGE uses 8PSK for 3 bits per symbol. There are various levels of forward error correction (CS-1 to CS-4) that eats up some of the raw bits in transmission.
CS-4 has almost no error correction, only checksum, as such, can quote the highest data rate. Just don't expect to get them without a lot of errors. It does allow the data to be processed at a higher layer with large block code error correction that may end up better for sending certain kinds of data and applications that are bit error tolerant.