¿ Y cual es exactamente el problema ?, es algo muy sencillo.
Conectas las filas, con ánodo o cátodo común, activas el puerto de la fila, que podrías barrer en un bucle for, y activas los puertos de cada uno de los 5 leds.
Puedes guardar las secuencias en arrays, para un barrido fácil con bucles for. Yo ahora estoy programando una aplicación que maneja dos matrices Led de 8x8 RGB y una placa adicional con leds SMD 1206 controlados en matriz de 6x6.
El planteamiento es simple; cargas el estado de los Led en un array, y con un timer vinculado a una interrupción dejas que una rutina encienda los Led periódicamente. En el programa principal, manejas el estado de los led, en mi caso eso depende de unas señales externas que vienen de una máquina, con un bus de datos de 8 bits, y 6 lineas que determinan las filas. Si quieres encender secuencias fijas, guardalas en un array.
Si las filas son de cátodo común, metes un ULN2803 y a correr, las columnas directas al microcontrolador.