This can be done in Linux, and has been possible for many years in both Linux and UNIX. What it is not, however, is well supported by configuration tools; setting it up will generally involve manually editing a bunch of files.
The search term you'll probably find most useful is multi-seat, which is a setup with multiple independent keyboard/mouse/monitor groups that multiple people can use at once (not to be confused with multi-head, which is where one user and keyboard/mouse pair uses multiple monitors). The Ubuntu documentation for setting up multiseat on recent (12.x/13.x) Ubuntu distros can be found here; the Arch Linux documentation for it (which is often helpful even if you don't use Arch, as they tend to go into great detail) is here. (If you already tried the Ubuntu instructions and they didn't work, detailing how and where they went wrong would be helpful.)
An alternative way to do things involves one central computer and a number of extremely minimal "thin clients" connected to it over a LAN; the central computer runs all the programs and the thin clients use X forwarding to act as additional displays for it. This can be even more aggravating to set up in some ways, though, as you need a very fast network to support multiple users, and stuff like sound support requires extra work if you want it to be streamed over the network to the clients rather than everything coming out of the central server's speakers.