Possible sure, things almost exactly like it have been done on several occasions in the past. It works much the same as you do anything else* assuming you do not fancy a hardware mod.
*there may be some really old hardware that does not copy the states but most will.
1) Change what buttons the DS thinks are pressed.
2) Change what buttons trigger what function.
At various points both have their advantages and disadvantages.
The buttons thing, as part of operation the DS notes what buttons are pressed and stores that data. This is to help dodge switch bounce issues and more. Find where this data is stored and preferably at the end of that routine have it swap the numbers around (it is just a long row of bits for the old GBA stuff and then another set for the new DS buttons).http://nocash.emubase.de/gbatek.htm#dskeypad
might be of interest.
You can do this in cheats (they tend to have button activated cheats and you then direct the rest to the location things are debounced to) without even doing any assembly (it is very similar to how the guitar hero guitar grip cheats work) and even hardpatch them in with something like DSATM but I prefer the assembly method myself as it a lot smaller change.
The functions thing works much the same in that you find what I presume will either be an IF statement with the button press as the subject or an interrupt doing much the same and change what triggers the function. As there can be many functions doing many things this is less than ideal for a lot of hacks.
There is a third method if the game allows any remapping at all (even another mapping you do not like -- such an option to change means things for the code lower down) as you then can try changing the mapping there. However if there is nothing like here then the is not much point considering it.