Here's one possibility:
\documentclass{article}
\usepackage{lipsum}
\newcounter{speaker}
\newcommand{\speaker}[1]{%
\stepcounter{speaker}%
\csname phantomsection\endcsname
\begin{center}{\large #1}\end{center}
\addcontentsline{toc}{section}{\numberline{\thespeaker.}#1}
}
\newcommand{\titleoftalk}[1]{%
\begin{center}{\large\bfseries #1}\end{center}
\addcontentsline{toc}{subsection}{#1}
}
\makeatletter
\renewcommand*\l@section[2]{%
\ifnum \c@tocdepth >\z@
\addpenalty\@secpenalty
\addvspace{1.0em \@plus\p@}%
\setlength\@tempdima{1.8em}%
\begingroup
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
\leavevmode \bfseries
\advance\leftskip\@tempdima
\hskip -\leftskip
#1\nobreak\hfil \nobreak\par%\hb@xt@\@pnumwidth{\hss #2}\par
\endgroup
\fi}
\renewcommand*\l@subsection{\@dottedtocline{2}{1.8em}{2.3em}}
\makeatother
\renewcommand\contentsname{Title of Talks}
\begin{document}
\tableofcontents
\newpage
\speaker{Name of Speaker A}
\titleoftalk{This is the title of the talk by speaker one}
\lipsum[1-10]
\speaker{Name of Speaker B}
\titleoftalk{This is the title of the talk by speaker two}
\lipsum[1-10]
\speaker{Name of Speaker C}
\titleoftalk{This is the title of the talk by speaker three}
\lipsum[1-10]
\speaker{Name of Speaker D}
\titleoftalk{This is the title of the talk by speaker four}
\lipsum[1-10]
\speaker{Name of Speaker E}
\titleoftalk{This is the title of the talk by speaker five}
\lipsum[1-10]
\end{document}

The idea is to use the standard \tableofcontents command and \addcontensline inside \speaker and \titleoftalk so that the inclusion in the modified ToC will be automatic. Each speaker name will be formatted as a section and the corresponding title, as a subsection (using slightly modified versions of the default \l@section and \l@subsection). Provision was made so that if hyperref is used, anchors will be added in the appropriate locations to have functional hyperlinks.
Here's a variation putting the speaker name and the tile in the same line:
\documentclass{article}
\usepackage{lipsum}
\newcounter{speaker}
\newcommand{\speaker}[1]{%
\gdef\currspeaker{#1}
\stepcounter{speaker}%
\csname phantomsection\endcsname
\begin{center}{\large #1}\end{center}
}
\newcommand{\titleoftalk}[1]{%
\begin{center}{\large\bfseries #1}\end{center}
\addcontentsline{toc}{section}{\numberline{\thespeaker.}\currspeaker~--~{\itshape#1}}
}
\makeatletter
\renewcommand*\l@section[2]{%
\ifnum \c@tocdepth >\z@
\addpenalty\@secpenalty
\addvspace{1.0em \@plus\p@}%
\setlength\@tempdima{1.8em}%
\begingroup
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
\leavevmode %\bfseries
\advance\leftskip\@tempdima
\hskip -\leftskip
#1\nobreak\leaders\hbox{$\m@th\mkern \@dotsep mu\hbox{.}\mkern \@dotsep
mu$}\hfill\nobreak\hb@xt@\@pnumwidth{\hss #2}\par
\endgroup
\fi}
\renewcommand*\l@subsection{\@dottedtocline{2}{1.8em}{2.3em}}
\makeatother
\renewcommand\contentsname{Title of Talks}
\begin{document}
\tableofcontents
\newpage
\speaker{Name of Speaker A}
\titleoftalk{This is the title of the talk by speaker one spanning more than one line for the example}
\lipsum[1-10]
\speaker{Name of Speaker B}
\titleoftalk{This is the title of the talk by speaker two}
\lipsum[1-10]
\speaker{Name of Speaker C}
\titleoftalk{This is the title of the talk by speaker three spanning more than one line for the example}
\lipsum[1-10]
\speaker{Name of Speaker D}
\titleoftalk{This is the title of the talk by speaker four}
\lipsum[1-10]
\speaker{Name of Speaker E}
\titleoftalk{This is the title of the talk by speaker five spanning more than one line for the example}
\lipsum[1-10]
\end{document}

In case one cannot (ab)use the standard \tableofcontents (because, for example, it has to be used for its intending purpose), one can easily modify the above examples and produce a \listoftalks command with the help of \@starttoc; here's an example showing this approach with the formatting used in the second example code above:
\documentclass{article}
\usepackage{lipsum}
\newcounter{speaker}
\newcommand{\speaker}[1]{%
\gdef\currspeaker{#1}
\stepcounter{speaker}%
\csname phantomsection\endcsname
\begin{center}{\large #1}\end{center}
}
\newcommand{\titleoftalk}[1]{%
\begin{center}{\large\bfseries #1}\end{center}
\addcontentsline{tot}{speaker}{\numberline{\thespeaker.}\currspeaker~--~{\itshape#1}}
}
\makeatletter
\newcommand\listtalksname{Title of Talks}
\newcommand\listoftalks{\section*{\listtalksname}\@starttoc{tot}}
\newcommand*\l@speaker[2]{%
\ifnum \c@tocdepth >\z@
\addpenalty\@secpenalty
\addvspace{1.0em \@plus\p@}%
\setlength\@tempdima{1.8em}%
\begingroup
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
\leavevmode %\bfseries
\advance\leftskip\@tempdima
\hskip -\leftskip
#1\nobreak\leaders\hbox{$\m@th\mkern \@dotsep mu\hbox{.}\mkern \@dotsep
mu$}\hfill\nobreak\hb@xt@\@pnumwidth{\hss #2}\par
\endgroup
\fi}
\makeatother
\begin{document}
\listoftalks
\newpage
\speaker{Name of Speaker A}
\titleoftalk{This is the title of the talk by speaker one spanning more than one line for the example}
\lipsum[1-10]
\speaker{Name of Speaker B}
\titleoftalk{This is the title of the talk by speaker two}
\lipsum[1-10]
\speaker{Name of Speaker C}
\titleoftalk{This is the title of the talk by speaker three spanning more than one line for the example}
\lipsum[1-10]
\speaker{Name of Speaker D}
\titleoftalk{This is the title of the talk by speaker four}
\lipsum[1-10]
\speaker{Name of Speaker E}
\titleoftalk{This is the title of the talk by speaker five spanning more than one line for the example}
\lipsum[1-10]
\end{document}
