На сколько я помню, то PTHREAD_THREADS_MAX задает максимальное количество нитей в состоянии join Если созданные нити перевести в состояние detach, то ограничений я не находил. Правда при больше чем 400 нитях начинались очень большие глюки,
Для себя уяснил, что если есть возможность использовать fork, то лучше не переходить на pthread.
По поводу производительности, то шедулер в linux щелкает 100 раз в секунду. Считай сам...