I'm not familiar with the Unity engine, but i'm my experience even tho it seems dificult it pays off to do a collisions based system in which each object detects the other objets and stops moving instead of letting the physics engine do it. This way not only it enhances performance but it also let you have more control over the minute details of the program. And for managing the weight probably asigning each fruit a weight value which is added to something like a left or right weight in the scale upon hitting it and in turn affects its movement, while having a way to substract weight upon leaving the scale.