You were almost there; you should only change the node text according to the \foreach index.
\foreach is a cycle for the variable \x from 1 to 5, step 1 (the step is given by the difference between the first and the second element here {1,2,...,5}, you don't need to list all the elements, tikz computes them for you).
shift={(\x,0)} means that the \draw is shifted by \x along the horizontal axis, you could also use xshift=\x cm where cm could be replaced by any unit of measure you prefer.
node[below=2ex] {$t_\x$} write a node, with text $t_\x$ (\x is automatically replaced), 2ex below the path.
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\draw (0,0) -- (6,0);
\foreach \x in {1,2,...,5}
\draw[shift={(\x,0)},color=black] (0pt,-4pt) -- (0pt, 4pt) node[below=2ex]
{$t_\x$};
\end{tikzpicture}
\end{figure}
\end{document}

Edit: Second OP's request.
Instead of writing the node text while you were drawing the path, you could name the nodes with node (t\x) {}, where t\x is the name (\x is automatically replaced) and, then, refer to these names to position your labels.
The tikzlibrary positioning allows you to decide where and at which distance to position a node w.r.t. another. For example \node[below=2ex of t5] {$t$}; means "position the node 2ex below of the node named t5".
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\draw (0,0) -- (6,0);
\foreach \x in {1,2,...,5}
{\draw[shift={(\x,0)},color=black] (0pt,-4pt) -- (0pt, 4pt) node (t\x) {};}
\node[below=2ex of t5] {$t$};
\node[below=2ex of t1] {$t- \Delta t$};
\end{tikzpicture}
\end{figure}
\end{document}
