IMHO, l'unica cosa che non comporta troppi problemi è di aprire, anziché direttamente l'immagine, un file PHP che mostri l'immagine con sotto il testo desiderato, formattato in HTML.

Ovviamente, questo comprende utilizzare una qualche sorta di Database per tener traccia dei dati, legati a ciascuna immagine, poi tu passerai come parametro GET alla pagina l'ID della riga corrispondente e PHP estrarrà i dati dal DB e popolerà la pagina aperta con Shadowbox.