You can get decent results using the plain old physics behaviour. Obviously you'd need to play around with the settings, but this is a functional, if slightly twitchy, abacus: here.
Drag and drop the beads. You'll need to implement a system to keep the beads from going above their rows, since they can be freely dragged right now. I'm thinking a manual drag-and-drop solution instead of the built-in one (it'd be brilliant if we could get axis restrictions on the drag-and-drop behaviour, actually).
It'd even be pretty easy to count the instances of the beads per row on the left or right of the abacus, if you're making an educational game.