У меня была такая же проблема.
Если у вас есть только один заголовок, простое решение, которое я сделал, это просто вынуть метку заголовка из таблицы и поместить ее в родительское представление uitableview и просто сдвинуть uitableview, чтобы компенсировать новый вид заголовка. Теперь сделайте представление заголовка прозрачным, и строки не будут прокручиваться позади представления заголовка, потому что оно в другом. Недостатком является то, что при прокрутке вверх заголовок не плавает над следующей ячейкой и, очевидно, он не работает для нескольких заголовков. Надеюсь, это поможет.