The situations when the tractor beam is used are tightly controlled by a script, but it does need to be able to rotate freely around the X-axis. That's why I thought of turrets. Is there another way to rotate a subobject to an arbitrary (at runtime) angle?
EDIT: To put it another way, the goal is a scripting function, SetTractorBeamTarget(ship, target), that causes the ship to emit a tractor beam from its tractor beam subobjects, and to bank and rotate those subobjects to keep target in the beam, until another call to SetTractorBeamTarget with the same ship argument.
Putting the tractor beam at a fixed orientation and rotating the entire ship isn't an option, because the ship needs to maneuver normally, too.