It is possible to do this with Zigbee. The API mode in the Xbee modules enables this.
Unlike the AT mode in Zigbee the API mode enables you to distinguish between the packets that you receive from different slaves.
In the API mode, you send each data packet with as a frame with a header which contains start delimiter byte, most significant byte (which tells where the start byte is at), least significant byte (which tells the end of the byte), an API identifier, the data that you want to send and a checksum byte.
This link provides a nice tutorial which shows how to setup Xbees on API mode with an Arduino and Python:
I hope this helps.