Basicamente deberias cargar la dll en la posicion en memoria que está definida en su header. Si es reallocable, habria que ver donde ponerla para que no se pise con nada mas. Luego, cargar las referencias de la misma (todo esto lo sacas del header), y poner en el mismo las direcciones de las referencias.
No creo que sea una buena idea hacerlo asi, ni tampoco le veo la gracia.
Si realmente lo necesitas, busca otra forma, por ejemplo hacer un Virtual File System (como hacen los generadores de apps portables), engañando al sistema de que realmente existe tal DLL y cuando la abra, redireccionar el puntero a otro lado. Yo hice algo de esto, pero no probe con DLLs. Esto lo podes hacer hookeando las apis correspondientes usadas por el sistema (chequea el
Api Monitor para ver que hace el sistema cuando cargas una DLL)