Фокус в том, что не надо заранее р чего планировать и рассчитывать. Запускаешь N потоков. Каждый поток берёт первый тест из кучи незапущенных, запускает, потом берёт следующий. Так и получится, что (при большом количестве тестов) всё потоки будут примерно одинаковое время работать.