Expressing iterative version of fold in terms of recursive version
For easier typing let me rename $\mathsf{fold}_{recur}$ to $\mathsf{foldr}$ and $\mathsf{fold_{itr}}$ to $\mathsf{foldl}$ (an additional reason for the renaming will soon be apparent).

Then we have
$$\mathsf{foldr} \,(h,c) \,[x_1, x_2, \ldots, x_n] =
  h(x_1, h(x_2, \ldots, h(x_{n-1}, c) \ldots ))$$
and
$$\mathsf{foldl} \,(h,c) \,[x_1, x_2, \ldots, x_n] =
  h(\ldots h(h(c, x_1), x_2), \ldots, x_n).
$$
That is, your two different folds are also known as the right and left fold in functional programming languages. You are asking how to get the left fold in terms of the right fold. The short answer is "by reversing the list".

Suppose we had a list reversing function $\mathsf{rev}$. Then we could define
$$\mathsf{foldl} \, (h,c) \, \ell =
  \mathsf{foldr} \, ((\lambda (x,y) . h(y,x)),c) \, (\mathsf{rev} \, \ell).
$$
We just need $\mathsf{rev}$ expressed in terms of right fold:
$$\mathsf{rev} \, \ell =
  \mathsf{foldr} \, (\mathsf{append}, \mathsf{nil}) \, \ell
$$
and
$$\mathsf{append}(x, \ell) =
  \mathsf{foldr} \, (\mathsf{cons}, \mathsf{cons}(x,\mathsf{nil})) \, \ell.
$$
You can fold all these definitions into one fat definition of $\mathsf{rev}$, if you want to impress your teacher.