I like @Gromolatto 's idea. However I believe that drawing hundreds of segments is an overkill. Here is his/her code using "\pgfplotfunction" which simplifies the code and increases precisicion since all points are ploted as they are without defining hunderes of sub-segments.
I left the original code in place and commented the lines that were replaced.
\documentclass{standalone}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\usepackage{pgfplots}
\usetikzlibrary{shapes}
\tdplotsetmaincoords{60}{110}
\begin{document}
\begin{tikzpicture}[tdplot_main_coords]
\node [cylinder,rotate=90,draw,aspect=2,minimum width=2cm,minimum height=3.5cm](C){};
%\foreach \t in {-90,-75,...,0}{%
% \draw ({cos(\t)},{sin(\t)},{-0.25+\t/360})--({cos(\t+7)},{sin(\t +7)},{-0.23+\t/360});
%}
\begin{scope}[color=black, dashed]
\pgfplothandlerlineto
\pgfplotfunction{\t}{-90,-89,...,15}
{\pgfpointxyz {cos(\t)}{sin(\t)}{-0.25+\t/360}}
\pgfusepath{stroke}
\end{scope}
% \foreach \t in {15,16,...,98}{%
% \draw[line width=1.5pt,color=red] ({cos(\t)},{sin(\t)},{-0.25+\t/360})--({cos(\t+1)},{sin(\t +1)},{-0.22+\t/360});
% }
\begin{scope}[color=red]
\pgfplothandlerlineto
\pgfplotfunction{\t}{15,16,...,110}
{\pgfpointxyz {cos(\t)}{sin(\t)}{-0.25+\t/360}}
\pgfusepath{stroke}
\end{scope}
%\foreach \t in {110,125,...,280}{%
% \draw[line width=1pt,color=red] ({cos(\t)},{sin(\t)},{-0.25+\t/360})--({cos(\t+7)},{sin(\t +7)},{-0.22+\t/360});
%}
\begin{scope}[color=red, dashed]
\pgfplothandlerlineto
\pgfplotfunction{\t}{110,111,...,303}
{\pgfpointxyz {cos(\t)}{sin(\t)}{-0.25+\t/360}}
\pgfusepath{stroke}
\end{scope}
% \foreach \t in {303,304,...,340}{%
% \draw[line width=1.6pt,color=red] ({cos(\t)},{sin(\t)},{-0.25+\t/360})--({cos(\t+1)},{sin(\t +1)},{-0.19+\t/360});
% }
\begin{scope}[color=red]
\pgfplothandlerlineto
\pgfplotfunction{\t}{303,304,...,340}
{\pgfpointxyz {cos(\t)}{sin(\t)}{-0.25+\t/360}}
\pgfusepath{stroke}
\end{scope}
%\foreach \t in {355,370}{%
% \draw ({cos(\t)},{sin(\t)},{-0.25+\t/360})--({cos(\t+7)},{sin(\t +7)},{-0.23+\t/360});
%}
\begin{scope}[color=black, dashed]
\pgfplothandlerlineto
\pgfplotfunction{\t}{340,341,...,370}
{\pgfpointxyz {cos(\t)}{sin(\t)}{-0.25+\t/360}}
\pgfusepath{stroke}
\end{scope}
\def\ang{340}
\pgfmathsetmacro\bx{cos(\ang)}
\pgfmathsetmacro\by{sin(\ang)}
\pgfmathsetmacro\bz{-0.24+ \ang/360}
\coordinate (B) at (\bx,\by,\bz);
\draw[fill] (0.9922,0.25,-0.2) circle [x=1cm,y=1cm,radius=0.045]node[below]{$A$};
\draw[fill] (B) circle [x=1cm,y=1cm,radius=0.045]node[below]{$B$};
\end{tikzpicture}
\end{document}
Here is the figure obtained:

If you make a "zoom" you will see how this figure icreases precision.
\begin{axis}
and\end{axis}
) appear separated, instead of superimposed...overlay
option the plots superimpose, but with different scalings, and different origins. Note that the axis of my cylinder is thez
axis. Theaddplot+3
figure seems to have its own system of coordinates. The cylinder has radius 1, so a parameterization of the helix with(cos(t),sin(t),t/5)
should fit on it. But it does not...