Have you tried creating an n-particle (ball) and instancing the geometry to it? I've attached a file that does this, I've adjusted the collision thickness on the n-particle to be roughly that of the hidden ball geometry that's being instanced. If you need to also compute spin the rotation of the ball, i believe there are some tricks that can be done in the per particle Array attributes although I can't recall how to do it off the top of my head.