Es muy simple.
Lo primero es que cada conversación se considere un array, se debe generar un componente que en este, maneje/administre las conversaciones.
Una vez teniendo esto, por ejemplo…si se abre una conversación hace un .push() al arreglo con los datos del identificador de la conversación y de esta forma dar de alta las tabs.
Algo que dijeron en el comentario del *ngFor está en lo correcto, en teoría así se debería de dar de alta, pero, el class=“active” no debería funcionar tanto así…ya que ahí debería usarse la directiva [ngClass] para que entonces, se asigne la clase únicamente al chat activo.
Asimismo, debajo de cada tab únicamente debe mostrarse la conversación relacionada al tab y esto se maneja de la misma forma que la clase activa pero haciendo un *ngIf="".