There is no "MouseOver" Event for a Shape which means that we can't do this directly.
However, ActiveX Controls do have a MouseOver Event so we could use as described here: https://www.youtube.com/watch?v=iyXj4YyCKxY
Basically, you layer two ActiveX Labels and your original Shape. You need another shape for the pop-up Picture, as well. Mine was called "myPicture". You need to know the name for the code below.
First, you make one Label smaller than the Shape and a second one larger. Then you make a sandwich with the small Label on the top, the large Label next and the Shape on the bottom. You also need the Shape to hold the Picture. Then you Group all these things together. The Labels were called label1 and Label2 to match the code below.
Now you need a couple of Event Handlers to process the MouseOver Events, like this:
Private Sub Label1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Me.Shapes("myPicture").Visible = False
Private Sub Label2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Me.Shapes("myPicture").Visible = True
The above code was inserted into the module for the Worksheet with the Shapes on it.
It is probably easier to see how it all works from the video in the link.
How reliable the functionality is depends on how you arrange the overlap of the labels.