У меня была такая же проблема, и единственный способ, которым мне удалось заставить ее работать, - это вручную установить tableOve contentOffset.
tableView.refreshControl?.endRefreshing()
tableView.setContentOffset(CGPoint(x: 0, y: 0), animated: true)