Yes.
Animations are played in a Spine AnimationState in TrackEntry objects.
When you call SetAnimation, it returns a TrackEntry for that animation you played.
Get that TrackEntry's TrackTime and keep it in your class.
Then when you call SetAnimation for your next animation, also set the TrackTime of that new TrackEntry.
var walkEntry = animationState.SetAnimation(0, walk, true);
//... then later
float walkTime = walkEntry.TrackTime;
var runEntry = animationState.SetAnimation(0, run, true);
runEntry.TrackTime = walkTime;