Extremely difficult is an understatement. You'd need to write a transparent layer to sit between the program you were running and replace the sound signals with its own. But that takes memory - which most GP32 programs *cannot* give up. It also takes CPU time - MP3 takes about 66MHz, so Doom or emus would all run at a crawl at best.
Assuming, of course, that it is even possible to write a transparent layer that could sandbox off one program from the rest of memory given the way FXEs are loaded (i.e. they get full control of the GP32's hardware, and all memory gets wiped). This I don't know, seeing as I'm not a programmer.
Nice idea though - just much easier to use a walkman.