You should have noticed that the velocity of those two balls are not small when the problem occurs.
Your time step is 1, however, dt=-17.4 so it is the problem. The time step 1 is too large.

I know that you are under a fix time step. 30FPS or whatever time step by your program.

You are doing one step of particle movement for each frame.
Here is my suggestion for your code
[code]
function actionLoop(e:Event):void {

calculateBallObjectNewPositions()
checkForCollisions()
updateBallPositions()

}
[/code]

Your time step is 1 for the above 3 functions. Please change it to smaller value. e.g. change it to 0.1

You can change code like
[code]
ballObject.tempX = ballObject.tempX + ballObject.horizontalVelocity;
ballObject.tempY = ballObject.tempY + ballObject.verticalVelocity;
[/code]
to
[code]
ballObject.tempX = ballObject.tempX + ballObject.horizontalVelocity*deltat;
ballObject.tempY = ballObject.tempY + ballObject.verticalVelocity*deltat;
[/code]
and define deltat=0.1 (Because we change to smaller time step 0.1 so we need to calculate it 10 times)

then, change actionLoop
[code]
function actionLoop(e:Event):void {
for (var i:Number = 0; i < 10; i++) {
calculateBallObjectNewPositions()
checkForCollisions()
updateBallPositions()
}
}
[/code]

Now, you are calculating it with 300FPS, even the program only update the view with 30FPS.

You can change 'deltat' to other values and change the number of outer loop (1/deltat) accordingly.
It is also possible to add code to adjust deltat according to velocity distribution (in some case, this might make it more efficient).

May be it only take you 1 hour to write the code, but you might need to spend 10 hours to debug the code (if you did not understand what your were doing or if you make a mistake without noticed).