Depending on tag type, file needs to be rewritten when changing tags.
Your problem sounds like mp3tag would read whole file in memory for rewriting instead of reading/writing block by block... but I can not believe that...
edit:
Check memory usage when mp3tag is processing an large single file.
Can you post a sceenshot of taskmanager or sysinternal process monitor?