You can use the backstretch.show
event as you suggest in you fiddle like a get the cap
element array.
Backstretch will fire a "backstretch.show" event everytime a new image loads, triggering a function that is passed the event and Backstetch instance. If you listen for that event, you can, for example, coordinate other changes to coincide with your slideshow.
Code:
// coordinating image captions with slides
$(b).on('backstretch.show', function() {
$(this).data("backstretch").index;
$(".caption").html(cap[$(this).data("backstretch").index].html());
});
Here is a working fiddle: http://jsfiddle.net/g84hK/9/