It's not simple. Say you have an expression that calculates a box's y offset based on where its neighbors are positioned. How do you move that box somewhere other than where the expression puts it?

I think you would need to control things with an external control of some sort. If only one box at a time can move, you could select that box with a slider and the expression on that box would say "I'm selected, I need to move 20 px". The neighbor's expressions would say, "My neighbor is selected, I need to move 10 px". Something like that. It depends a lot on how you are planning on animating things.