(define (fib p n)
(let ((cont (lambda (a)
(let ((cont2 (lambda (a2)
(+ a a2))))
(fib cont2 (- n 2))))))
 (if (< n 2) n
(fib cont (- n 1))))

こうかな? 合ってるかな?
関数が継続を引数にとるようになって、全ての関数呼出はtail callになる。