You could probably do it all in DynRPG, but this is how it's setup currently...
For enemy names:
Every battle has a "Turns elapsed " page that calls a "BATTLE-Init" common event.
That common event does some initialization and calls 2 things into DynRPG:
@show_battle_window "start" - not obvious by reading it, but it takes the number of monsters, and creates a window that is 1-4 rows in size. It's 4 rows I think if there are greater than 4 monsters (although I don't think there ever are in EJ).
@get_monster_names - This gets the monster names and inserts them into a "Message" scriptline beneath it.
Steal:
This is a little more old school. I just turn on/off switches for monsters that the steal command is run on, and call common events to organize logic. I think there's just a single DynRPG command to streamline the hard part:
@ej_steal_item - A lot of this is hard-coded, but it basically determines if the item can be stolen from certain enemies (bosses), and turns on an "item stolen" switch based on the enemy target id.
From there, it's even fuzzier -- the steal command is a convoluted mess.
The buff/debuff thing is from this:
https://rpgmaker.net/engines/rt2k3/utilities/35/General battle improvements are from this:
https://rpgmaker.net/engines/rt2k3/utilities/60/