So maybe a 74HC595 driving a ULN2003 ? The only thing with the ULN200x devices is that they are only 7 channel and don't match up with the channel count of the shift registers.
The ULN2803 has 8 channels and looks like the current handling would be ok.
But is there a smarter way of doing this (I don't want to use a matrix of columns and rows though).