Aren't they? Because the answer does involve
setPos.
As an aside, are you sure you need to spawn these objects? It would be much easier to place them in the mission editor - then they'd need only to be setPos'd one above the other, and you could easily change their orientation.
Step 0
Know where the table will be, either its position OR place something invisible. For this illustration that will be a marker called
table_point.
Step 1
Generate the table.
table1 = "Table"
createVehicle getMarkerPos "table_point"
Step 2
Generate the radio.
wasteofspace = "Radio" createVehicle getMarkerPos "table_point"
Step 3
Position the radio atop the table. The third entry in the array is what raises it off the ground.
wasteofspace setPos [(getPos table1) select 0, (getPos table1) select 1, ((getPos table1) select 2) + 1]
If you need to rotate them, use
setDir.