I finally figured this out. A rectangle works as a container for data regions. If I place the table into a rectangle, it will only grow within the boundaries of the rectangle, without pushing other report items around.
In order for this to work, though, the table must be a child control of the rectangle. This is achieved by dropping a new table into an existing text box, or by dropping an existing table some place outside of the rectangle, then moving it back inside. If you just draw a rectangle around the table, it will not become a child. This can be verified by right-clicking on the table. If it only says "select body" and not "select rectanglexx" as well, it is not a child of the rectangle.
Alternatively, it is possible to place other items (text boxes, etc into a rectangle that is on one side of a table. The top edge of the rectangle must be above the bottom edge of the table. Then any controls in the rectangle will be unaffected by the growth of the table, but other items below the table will.