I could see a circular buffer implemented in the registers working. Basically keeping the top x of the stack loaded in the reigsters, and pushing/pulling values when you get close to the opposite end (pushing values to main memory if you get too full, pulling if you get too empty)
Dunno if I am explaining it well.
On a reread, I think I might just be stating what you did, but in different, worse, words.
Definitely a VERY different hardware architecture than "normal" machines though