Lo que estás buscando es 'nscd' (name server caching daemon), es una parte del árbol fuente de glibc y es una parte estándar en la mayoría de los sistemas. En muchos casos todo lo que necesitas hacer es instalar el paquete e iniciar el demonio, está preconfigurado para almacenar todo en caché y trabajar con pam_ldap. En un sistema Red Hat/CentOS puedes ejecutar 'authconfig' y ver que hay una opción que lo hace todo por ti - habilita LDAP y el almacenamiento en caché, y escribirá tus configuraciones.
Ahora, para tu concepto de uid/gid al vuelo, lo que creo que estás buscando es la opción de pam_ldap 'pam_login_attribute' (por defecto: uid) y 'pam_member_attribute', posiblemente 'pam_filter' también. 'pam_login_attribute' es lo que controla la búsqueda contra su nombre de inicio de sesión si necesitas ajustarlo.