IMO your mechanic isn't a 3800 expert and probably shouldn't be trusted on this one.

A single cylinder misfire is not a timing chain related issue. If that were the case, a simple CASE Learn would help the pcm relearn tdc and you'd be set. Your misfire is probably a plug, wire or coil. I have actually found a bad ICM to cause a coil to not fire for one cylinder. A weak coil can cause this type of thing as well.

What spark plugs are you running? Age?
What plug wires are you running? age?
What coils are you running?