Lo que está pidiendo es básicamente agrupar por hilo en lugar de por remitente. Los hilos se pueden iniciar entre dos personas, independientemente de si son el remitente o el receptor.
Para lograr esto, recomendaría cambiar su estructura de datos similar a lo que se discutió aquí:¿Existe una forma más sencilla de lograr este estilo de mensajes de usuario?