To maintain a constant speed, you use .getPointAt( t )
instead of .getPoint( t )
.
To get the box to remain tangent to the curve, you follow the same logic as explained in the answer to Orient object's rotation to a spline point tangent in THREE.JS.
box.position.copy( spline.getPointAt(counter) );
tangent = spline.getTangentAt(counter).normalize();
axis.crossVectors( up, tangent ).normalize();
var radians = Math.acos( up.dot( tangent ) );
box.quaternion.setFromAxisAngle( axis, radians );
EDIT: Updated fiddle: http://jsfiddle.net/qGPTT/509/
three.js r.88