I found this very well written blog post on the web on how to use your microcontroller with limited I/O pins to drive large dot matrix led displays. The atricle explains how to use 74HC595 shift registers to scan multiple dot matrix display modules's columns and a CD4017 decoded counter to scan the rows. All together you will need 3 I/O pins for the shift register and only 2 I/O pin to drive the decoded counter.

Here is the link: http://embedded-lab.com/blog/?p=2661

I have used 74HC595, CD4017, ULN2003 chips to drive dot matrix displays already using arduino, but that was static/non-scrolling. This blog post gave me better understanding on how to do the scrolling.