I would like to share my experience building a custom iMac using a Raspberry Pi 3 as the new motherboard. I still have some quirks to fix, but it works very well already!
Original 20" LCD
Original power supply
Raspberry Pi 3 ($39)
LVDS controller with inverter and control board ($23)
4-port USB hub ($7)
HDMI-to-VGA adapter ($8)
USB car charger ($10)
Power: I wanted to reuse the power supply, as it was working and easily provides enough juice to power everything. It only outputs 12V, so I used a USB car charger to drop the voltage to the 5V that the Raspberry Pi needs.
LCD: The LCD was still working, so I ordered a LVDS controller. Unfortunately, the Ebay seller said he couldn't get the HDMI-based board to work this this type of LCD, so they shipped me one that only has VGA input. I was upset about this, but it took long enough for them to get me the controller board, I just went with it. Given the RPi does not have a VGA output, I initially tried to use a Gerts VGA666 controller board that uses the GPIO pins to generate a VGA signal. The quality of the result was mediocre, so I ordered a HDMI-to-VGA adapter (unpowered). Initially the LCD would blank out every so often (dependent on screen resolution, full res it was barely usable). The solution was the use the config.txt to boost the HDMI signal to the max. I am pretty sure I did not need the inverter for the LCD cathodes tubes, as the original still worked, but did not want to bother rewiring the plugs to make it work. I did not have a short enough VGA to link the controller to the VGA adapter, so I used a spliced ethernet cable. There does not appear to be hardly any signal degradation.
Speakers: The original speakers still worked, so I simply spliced the cables onto 3.5mm jack that plugs into the RPi. I initially tested it on my smartphone and it worked, albeit with a medium-to-low volume output. I do not plan to use much sound on this machine, so that is acceptable. When I plugged it into the RPi, there was no sound. I believe the RPi is trying to pass audio over HDMI and not 3.5mm, so I will need to work that and configure it to force audio over 3.5mm.
Fans: There are 3 fans in the iMac. They all run off 12V power and have 4 wires. The larger fan that cooled the PSU and the heatsinks used a special 5-wire plug. After testing, the two smaller fans simply need a 12V power and a 3-5V control voltage to adjust the speed. I plugged them into the 3.3V that the RPi outputs and they work well (5V was a little too noisy and unneeded). The larger fan appears to be a PWM fan, hence the different plug. I attempted to use a 555 timer circuit to create a PWM signal (I found the schematics online), but it outright did not work. I will attempt to drive the PWM signal from a GPIO pin from the RPi using a simple Python script. Potentially I can have it adjust speed based on the CPU temperature if it is not too hard. I currently do not have the large fan inserted, but after and hour of use, the high-temp warning signal turned on on the RPi. Therefore I will need to get that working.
USB: The iMac's ports in the back are a little bit of a pain to use, as they are perpendicular to the LCD and such. I simply used a USB hub and had it's ports face down and out the memory access area at the bottom.
On/Off Switch: The PSU of the iMac uses a simple short to turn itself on. Given the stock switch on the iMac is a momentary button, I could not use it directly. I fiddled with the idea to keep it and build an on/off circuit, but given the on/off style of the RPi, I simply went with a rocker switch. I cut the dividing plastic between two of the old USB ports on the back of the case and the rocker switch fits perfectly. I added a 1k ohm resistor in line just in case.
Let me know what you guys think!