With one extra ability per pokemon, it would only take up 386 bytes. But, you could not take up any extra space by using the padding at the end on the base-stats data structure. You could even add two extra abilities per pokemon without needing a table.
Doing the above would also allow easier routine editing, as adding a simple check for a flag (or something), then branch into a slightly edited routine. Thus, not taking up too much extra space.
EDIT: I looked into it a bit, and it seems most abilities are actually determined from a single routine. I don't have any assemblers installed on my laptop, but I'll set up my old desktop and see if I can get something done. The routine is at 0x40D38, btw.