I have an iMac and a MacBook Pro, both with thunderbolt 3. Is there any way of utilising the processing power of either device on the other (be it GPU/CPU or RAM), if not, what are the limiting factors?
The short answer is: Because the two scenarios are nothing alike, and one has no bearing on the other.
The longer answer is: A video card is a PCIe Endpoint device. It is intended to be connected to a a hierarchy which is rooted in a Root Port, such as the PCIe controller in a modern CPU. Thunderbolt3, among other things, is a PCIe channel, so a video card connected to a system over TB3 talks PCIe encapsulated in TB3 with the TB3 controller. The TB3 controller acts as a PCIe switch which is downstream from the system's Root Port (in reality, the chain is most often CPU -> PCH -> TB3 controller -> Enclosure -> GPU) and relays traffic between the Root Port and the GPU Endpoint. In other words, the system sees the GPU as if it is located inside the system, so everything works as a system is used to.
Now, Root Ports are not Endpoints. If you connect two PCIe hierarchies together at any level, it just won't work. A system is not a PCIe Endpoint, so nothing in PCIe allows using a whole system as an Endpoint.
The even longer answer would be too technical, but would boil down to: You could do something of the sort, but it would be more akin to building a cluster of two machines connected by an Ethernet connection rather than one machine utilizing the resources of the other.
Some server class software might be able to take advantage of resources on both computers if they are connected via Thunderbolt networking and could take advantage of the 40GBps connection speed.
Something like a Hadoop cluster for Big Data map reduce or a MongoDB cluster could take advantage of this if configured properly if you’re crunching lots of data.
Any software that can be configured to run in a cluster would work well. Setting up a small render farm is certainly a possibility.
If you’re a software developer I recall that Xcode server used support slitting builds across multiple machines (not sure of thanks still supported).
Unfortunately this kind of setup will not work standard desk top applications or games.