CAN uses a lossless bitwise arbitration method of contention resolution; if two nodes start transmitting at the same time, the address of one of the nodes will be corrupted and that node will cease transmission. This is possible because CAN transceivers only drive the line into one state (from recessive to dominant), similar to I2C.
RS485 transceivers drive the line high and low so if two nodes start transmitting at the same time, the data from both nodes may be corrupted as the line is driven to some mid-rail value. RS485 supports 32 Unit Loads on the bus. Many transceivers are rated at 1/8 UL, which allows 256 nodes on the bus (see Texas Instruments SLLA272B - The RS-485 Design Guide).
I have used RS485 in a multi-master system in my first job, with a PIC16F877. I used a simple CSMA/CD (Carrier Sense Multiple Access with Collision Detection) scheme, where the UART interface simultaneously writes to and reads from the RS485 bus allowing byte-wise collision detection (differential drive prevents non-destructive testing). If the data was corrupted the master would cease transmission and retry after a random time. It worked OK but I only had a few masters.