I just killed myself about two dozen times and rapidly looted my corpse every time. While there are many instances of being kicked off the corpse for looting too fast, it never resulted in any loss of items.
The code supports this as well.
Code:
void Corpse::LootItem(Client* client, const EQApplicationPacket* app)
{
//this gets sent out no matter what as a sort of 'ack', so send it here.
client->QueuePacket(app);
if(!loot_cooldown_timer.Check())
{
SendEndLootErrorPacket(client);
return;
}