"could i do this with the 12 digital outputs on my uno "
You have the analog pins all tied?
A4/A5 are I2C, many RTCs use that (such as DS1307).
A0-A4 are then D14-D17 if needed (maybe you are using to read buttons for time setting).
I like John's approach, use an array to store the state of the LEDs.
I would write it as a loop that read the state of the 1Hz square wave out of the RTC, every time it went low you could read the 7 or 8 bytes, parse out the hours minutes, do a little logic to decide which LEDs you wanted on and update your accordingly, and turn on the blinking LED.
Then read the square wave again, when it went high you could turn off the blinking LED.
Then wait for a low again, and repeat the time check.
This way the blinking LEDs go on/off once a second, no need to mess with dividing time down, etc., just some simple code:
if (time == whatever){
change array value
write arrays to shift registers
}
kind of code.