Yes, that should be doable as long as the update rate is fairly low.
Imagery providers work in terms of a quadtree of tiles. The entire globe is covered by two images. Then, each of those images has four children covering the same extent but with twice the resolution. This continues to a depth of your choosing. Cesium figures out which tiles are visible in the current view, and requests them from the imagery provider, which can either request them from a remote server or generate them on the fly. The request happens asynchronously, and until a tile is ready, that tile's parent (or grandparent, etc.) tile is shown instead. So the globe always shows your heatmap, it just improves in resolution as better data is loaded.
When the images change with time, the challenge with this approach is keeping the various tiles in sync. But if your data changes slowly, you're probably in good shape.
The easiest way to update the tiles is to just remove the imagery provider layer and re-add it. That will refresh all the tiles, but will have the probably-unwanted side effect of making your heatmap disappear and then reappear incrementally as new tiles are loaded.
You could also add a new copy of the imagery provider on top of the existing one, and remove the old one once the new one is sufficiently loaded. That should avoid the flickering.
Better things are possible, like updating the images in-place, but it's not straightforward. We hope to have better support for this sort of thing eventually.
Kevin