Well, MAX7219 datasheet says 10mhz clock, that is way faster than 50khz, so I guess, since it supports that, this means it can also display with that speed, right?
No, why do you think that? All it means is that the chip can load the information about what it should display at that rate, it takes a lot longer for it to actually "render" the information on the display.

From the datasheet:
The scan-limit register sets how many digits are displayed, from 1 to 8. They are displayed in a multiplexed manner with a typical display scan rate of 800Hz with 8 digits displayed.
If fewer digits are displayed, the scan rate is 8fOSC/N, where N is the number of digits scanned.
So with 4 digits in use the display is updated at a rate of 8*800/4=1600 times per second.

If you really do need the display to update 50000 times/second I'd suggest to use some latching driver chips (BCD to 7-segement or just plain old latches). The HEF4543 would be a good candiate I think.
If you drive the digits directly with the PIC you need write to 4 different output/latch registers sequentially so there's a slight risk it will actually show up on camera since the four digits won't actially update at the same time. Like when going from 0099 to 0100 it MIGHT show up on camera like 0099, 0090, 0100 etc depending on the order in which you update the digits. If you use external latches you can preset the data and then latch it in all at once - bam.