O que você está procurando é 'nscd' (daemon de cache do servidor de nomes), é uma parte da fonte da árvore glibc e é uma parte padrão na maioria dos sistemas. Em muitos casos, tudo que você precisa fazer é instalar o pacote e iniciar o daemon, ele é pré-configurado para armazenar tudo em cache e trabalhar com o pam_ldap. Em um sistema Red Hat / CentOS você pode executar o 'authconfig' e ver que há uma opção de caixa de seleção para fazer tudo para você - ativar o LDAP e o cache, ele irá gravar suas configurações.
Agora, para o seu conceito uid / gid on-the-fly, o que eu acho que você está procurando é a opção pam_ldap 'pam_login_attribute' (padrão: uid) e 'pam_member_attribute', possivelmente 'pam_filter' também. 'pam_login_attribute' é o que controla a pesquisa em relação ao seu nome de logon, se você precisar ajustá-lo.