oooo, okay ... two 8 bit ports, not two lines .. gotcha
well then, I recommend two 'lines' of 74HC595 latches for your columns, and drive the rows with a multiplexer or straight off the uP
theres a lot of talk about the 595 already on the forum, including schematics ... basically you hook up 3 lines from your uP; Clock, Latch and Serial Data ... then you bitbang out your data, toggle the latch and presto, the latches display a parallel representation of the data you clocked in serially.
you'll need four 595's, connected as two sixteen bit latches, then can share common clock and serial data lines, but give each 16 bit register its own latch line, and maybe each its own clear line (they have lots of options, check the DS). there is 32 outputs to drive your 30 columns (2 sets of 15 right?)
for the rows, use a multiplexer (takes 3 control lines) or direct-drive them from the uP ... depending on the power involved (whats the rating on the array?), you'll probably need power transistors to drive the rows... assuming 10ma per led junction, 30 junctions per row, thats 300mA, well beyond what a normal uP or uC can deliver.