300 infrared sensors

Overlooking the new Vishay part for now:

Once you read in a row or column's worth of data, you need to send out a row or column's worth of WS2812 data, yes? Or read in all sensors, and then send out all WS2812 data. 3 bytes/device, you said 2 devices per location, 300 locations, so 3 x 2 x 300 = 1800 bytes total, and need 50uS between frames or rows to let the data change at the output. If not done as one long string, then need to work in demultiplexing to fake a Slave Select per row or column as well. Gonna need something with more SRAM than a '328P to hold the WS2812 data to send out, as well as the sensor readings that will be manipulated to create the WS2812 data.
1800 bytes at max SPI speed, ~1uS/byte, will need 1800uS. I don't know how fast the WS2812 library runs - 400 KHz transfer rate, 800KHz? Datasheet says 1.25uS/bit +/- 0.6uS.
Reading in the 300 sensors, using MCP3008, needs 3 bytes/sensor, 2MHz SPI clock speed, so 4uS/byte x 3 bytes = 12uS, x 300 sensors = 3600uS.
So 5400uS so far, not counting the code itself
1/.0054S = 185 Hz.
30 Hz = 33,333uS, so there is room, ~28mS, for looping, incrementing counters, setting mux address pins, etc.

Not sure where I'm going with this, just kind of rampbling to confirm feasibility. Guess the biggest thing is not wanting to demux the WS2812s due to needing even more hardware to support that.
Having (300/8) ADC chips = 38 chips, and selecting one at a time from one of three 74HC154s makes a lot more sense to me than muxing 300 signals thru 2 layers of analog muxes/switches to go into the slow by comparison ADC of the Atmega 328/1284/2560.
The MCP chips can be spread around the table so the analog runs are short, the 2 MHz SCK and SS can be buffered with a 74AC244, each output going to 5 or 6 chips, so signal integrity is maintained, do similar with 74HC125 coming back, group 5 or 6 Serial outputs to one buffer to route back to MISO at the uC.

Was there mention of how big this table is?