It sounds like you want to run screen in your terminal.

To generate this screen shot, I opened a terminal and ran screen. To split the window, I used the keystroke "ctrl-a S" for a horizontal split and "ctrl-a |" for a vertical split. To start the additional shells, I ran screen three times in the active shell. To switch between windows, I used the keystroke "ctrl-a tab". To change the shell that was being displayed in the active window ("0 bash", "1 bash", etc.), I used the keystroke "ctrl-a n" ("next") or "ctrl-a p" ("previous"). To exit each screen process, I just exited the shell running in the screen process; doing so four times returned me to my ordinary terminal.
Summary of screen keystrokes:
ctrl-a S split the window horizontally
ctrl-a | split the window vertically
ctrl-a tab switch to the next window
ctrl-a n switch to the next process
ctrl-a p switch to the previous process
(edit: jtimberman) If you have a version that supports it, you can do a vertical split of a screen with "ctl-|" (pipe), so you could do 2+ x 2+ screens per terminal. Ubuntu 9.04 has this capability, it was introduced ~version 4.00.03.
(edit: las3rjock) The screenshot has been updated to show screen with vertical as well as horizontal splits. Since the version of screen that comes with Mac OS X does not come with this feature, I built it from CVS according to directions I found on this blog. I assume you could do the same for Linux by skipping the patch steps.