Momentary switches - why not look into the keypad tutorial as well?
I would suggest wiring it up like this with the diodes so you would only go out & read the keys when a press somewhere creates in interrupt.
Expand it to 7x7. Uses up 15 pins this way, and need 7 diodes. The code goes out & figures out which key was pressed. I'm not sure what it does for multiple keys pressed together.
The other way, using discrete parts or a Shield like the centipede, uses less arduino pins.
Or 3 chips like this
http://focus.ti.com/lit/ds/symlink/sn74ls673.pdfor 6-7 of these
http://focus.ti.com/lit/ds/symlink/sn74ls165a.pdfDo you need 49, or will 48 be enough?
Functionally, you want to end up like this if you want to use interrupts to capture each switch and be sure to multiples pressed at the same time.
I show an 8-pin shift register for clarity. There are 16 input versions also, and the centipede documentation indicates it has weak internal pullups (100K) and Nick was mentioning interrupts that could be connected. The advantage of shift register is that you can latch the state of the pins as soon as any one is pressed - its gonna be keypress, interrupt, latch signal - so simultaneous presses really need to be simultaneous. Take your same shifting in, you've already captured the keypress, any others are locked out.
The other way with a port expander: you get an interrupt, you go out and start reading. Reads will happen pretty fast, but "simultaneous" time is a lot longer.
The other option is just latch & read every millisecond or so as part of a loop of whatever else you have going on and don't bother with interupts.
Lots of options, you need to decide how much time to you want to spend building, or spend money buying, or the performance you can live with.
You're not locked into anything, you can always rebuild things later.