Using a Matrix would work with an easy to program Microcontroller.
Two potential ways to deal with that:
1) two shift registers and you can display one column (or one row) at a time: it is the simplest solution but requires extensive data rate: since only one column / row is on at a given time, to avoid blinking, you have to constant send the shift registers data.
2) dedicated drivers like 7219: all you need is to send the 64-bit data and the chip handles it. Serial input so minimum wiring. They are also quite inexpensive, but works only at 5v.
Which is best will depend on the rest of your design.