I am programming something in C that creates a lot of Pthreads in Linux on a 256Mb system. I usually have +200Mb free.
When I run the program with a low amount of thread
If you want lower overheads consider user-space threading technologies such as fibers, ala co-operative task management.
http://en.wikipedia.org/wiki/Fiber_(computer_science)
http://www.evanjones.ca/software/threading.html
GNU Portable threads:
http://www.gnu.org/software/pth/
Boost C++ co-routines:
http://www.boost.org/doc/libs/1_60_0/libs/coroutine/doc/html/index.html
Windows-only fibers as an FYI:
http://msdn.microsoft.com/en-us/library/ms682661(v=vs.85).aspx
See the Wikipedia link for more example implementations.