Jeder Client erzeugt einen eigenen Thread. Über die Data-Eigenschaft des TIdPeerThread kannst Du im OnConnect-Ereignis des Servers ein Datenmodul instantiieren (ob das nun von TDatamodule abgeleitet ist oder nicht, ist irrelevant) und dann die Daten der Connection in diesem Objekt speichern. Wenn deine Anwendung dagegen sessionbasiert ist, benötigst du einen threadsicheren Container sowie eine Session-ID. Das kann z.B. eine
GUID sein. Dein Container kann eine TStringlist sein, die natürlich mit ggeigneten Verfahren threadsicher gemacht wird.