Well, collision isn't made for 3 objects at a time, so it's not easy this way.
I would start by making an "evalSystemState" function, that would eval the system every 0.1s or so. It would examine every ball, one after the other, checking how many other balls were in its vicinity and saving this in a variable on the balls. Once this is done, you would just have to destroy every ball that have 2 or more in this variable.
The problem with that is that if Ball B is in the vicinity of Ball A, and Ball C is in the vicinity of Ball B but NOT in the vicinity of Ball A, then you won't destroy all of the balls when in fact you should (if I understood correctly what the OP wanted).
On the other hand, if the only condition that destroys the balls is when all 3 are touching each other, the problem becomes much simpler, as you say.
As far as doing the detection of one object with multiple objects of the same type, the trick I learned in C1 was to put object A in family A, then pick a given instance of object A, and check it against all instances of family A (except itself). Seems like it works in C2 as well, though I'm not sure if there's a better method.