Eu luto com esquisitices com iOS vs tudo o mais o tempo todo. Geralmente, envolve problemas de contexto de empilhamento. Parece-me que o elemento position: stickye left: 0se torna relativo à primeira linha no iOS. O iOS não lida com o contexto de empilhamento da mesma forma que todos os outros navegadores.
Eu nunca realmente descobri exatamente o que causa isso. Tecnicamente, a célula do seu iPhone fica presa à esquerda, mesmo quando está rolando, porque é relativa ao pai que não possui left: 0. Estou assumindo que isso tem a ver com a forma como o iOS lida position: sticky. O adesivo começa relativo e depois muda para fixo. Todos os outros navegadores nesse ponto o fariam à esquerda. Você tem um position: sticky;elemento dentro de um position: sticky;elemento. Esse é um novo contexto de empilhamento. Acredito que o iOS o torna fixo ao pai e não da maneira que você esperaria. Como a linha pai não temleft: 0vai rolar com todo o resto. Eu espero que isso ajude. Não vi cintilação, mas havia alguns componentes danificados na estrutura da web da minha empresa depois que o iOS 13 foi lançado, envolvendo contextos de rolagem e empilhamento. Eu testaria em vários dispositivos iOS.
editar depois de brincar um pouco mais, tenho certeza de que é um problema de empilhamento de contexto. Aumentei o índice z até 1000 apenas na célula do iphone e as linhas abaixo AINDA aparecem acima dela.

Se você não precisa dar suporte ao Internet Explorer, eu usaria grades CSS para obter esse layout. Então você não terá que se preocuparposition: sticky
https://css-tricks.com/snippets/css/complete-guide-grid/
https://css-tricks.com/using-css-grid-the-right-way/
Eu o uso para conteúdo pesado de dados dinâmicos em aplicativos de negócios, para que possa ser incrivelmente flexível se aproveitado adequadamente.
Atualizado novamente - Se você não pode alterar o DOM, precisará lidar com a oscilação, pois mesmo a solução de grade exigirá wrappers em torno de alguns elementos. Apenas para esclarecer .... Com uma solução de grade, você NÃO precisa saber quantas colunas ou linhas você terá. Você parece pendurado nesse aspecto. As áreas de grade também criam um novo contexto de empilhamento e tornam tudo relativo à área de grade em que está, permitindo unidades flexíveis. Não posso responder até que você mostre como os dados dinâmicos estão chegando. Precisamos de mais contexto para fornecer uma solução de código.
Novamente, a tremulação está acontecendo porque você tem um elemento posicionado dentro de outro elemento. Isso é apenas iOS e se você quiser usá-lo dessa maneira, precisará lidar com isso.
Aqui está a documentação sobre os contextos de empilhamento e como eles funcionam. Como afirmei em um comentário, você terá que adotar uma abordagem diferente ou apenas lidar com ela.
https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context
Além disso --
Oculte o excesso no seu HTML e corpo. Coloque um invólucro em volta da mesa. Coloque -webkit-overflow-scrolling: autoa embalagem. Execute-o no iOS 12 e você verá que não pisca. Você não terá rolagem de momento. O iOS13 removeu a necessidade do, -webkit-overflow-scrollingpara que você não possa substituí-lo. Se você colocar o valor de touchem -webkit-overflow-scrolling, agora ficará piscando. Execute este código abaixo e você verá que ele não pisca. Para encurtar a história, como já disse muitas vezes, você precisará encontrar uma abordagem diferente. Você não pode consertar isso agora que o iOS13 está fora e realmente não gostaria de desativar a rolagem de momento.
html {
overflow: hidden;
width: 100%;
height: 100%;
}
body {
overflow: hidden;
height: 100%;
width: 100%;
}
.wrapper {
overflow: auto;
-webkit-overflow-scrolling: auto;
width: 100%;
height: 100%;
}
.table {
width: 2000px;
position: relative;
}
.tr {
overflow: visible;
display: block;
white-space: nowrap;
font-size: 0;
}
.tc {
border: 1px solid #DDD;
display: inline-block;
width: 100px;
height: 100px;
text-align: center;
font-size: 12px;
}
.trh {
background: #000;
color: #FFF;
position: -webkit-sticky;
position: sticky;
top: 0;
z-index: 1;
}
.tc.first {
background: #000;
color: #FFF;
position: -webkit-sticky;
position: sticky;
left: 0;
}
<html>
<head>
<link rel="stylesheet" href="css.css">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<div class="wrapper">
<div class="table">
<div class="tr trh">
<div class="tc first">Iphone</div>
<div class="tc">value</div>
<div class="tc">value</div>
<div class="tc">value</div>
<div class="tc">value</div>
<div class="tc">value</div>
<div class="tc">value</div>
<div class="tc">value</div>
<div class="tc">value</div>
</div>
<div class="tr">
<div class="tc first">a set</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">2</div>
</div>
<div class="tr">
<div class="tc first">a set</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
</div>
<div class="tr">
<div class="tc first">a set</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
</div>
<div class="tr">
<div class="tc first">a set</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
</div>
<div class="tr">
<div class="tc first">a set</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
</div>
<div class="tr">
<div class="tc first">a set</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
</div>
<div class="tr">
<div class="tc first">a set</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
</div>
<div class="tr">
<div class="tc first">a set</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
<div class="tc">0</div>
</div>
</div>
</div>
</body>
</html>