There is a plugin on this site called 'Particle-v1.1' that is pretty good. Most of the time though it's pretty quick to just use expressions to do this same thing. Look in the shake Manual for info on scripting and expressions...
typically when I need to simulate forces like you describe you get fine results using multiple Move2D nodes which are chained to a single curve with different time offsets; I use this all the time for motion graphics so that I only have to tweak a single curve instead of one for each element. For simplicity say you just want to play with your Y axis:
Move2D_1 <--make a curve for yPan, connect the Move2D_1 node to the desired element (say Element1), then clone this Move node several times.
Move2D_1_clone <---modify that node's yPan to be something like 'Move2D_1.xPan@@(time-4)', and connect it to next element, (Element2).
Move2D_1_clone1 <---modify that node's yPan to be something like 'Move2D_1.xPan@@(time-8)', and connect it to next element, (Element3).
Move2D_1_clone2 <---modify that node's yPan to be something like 'Move2D_1.xPan@@(time-12)', and connect it to next element, (Element4).
and so on...
This is really simple but you can use expressions to control all kinds of particle animation; add variables, more curves, and signal generators for more complex animation.
Hope this helps...