Ответ на вопрос «Могут ли 2 потока запустить один и тот же обратный вызов одновременно, если этот обратный вызов не имеет доступа к глобальным переменным ant?» Ясно ДА.
Однако у вас будут проблемы при изменении состояния OpenGL в функциях обратного вызова, особенно при использовании glBegin / glEnd (например, если вы генерируете DisplayList). Пока вы не используете графический процессор (например, если вы используете сетку), вы можете выполнять тесселяцию с многопоточностью.
Если вы хотите оптимизировать свой чертеж, вы можете вместо этого использовать геометрический шейдер для тесселяции. Для этого требуется Shader Model 4.