If you don't actually want the glosses to appear in the margin, but rather within the bounds of the textblock, you can fake it in the following way. (If you do want them in the margins, it is even easier to do it.)
\documentclass{article}
\usepackage[
showframe,% just for visualization purposes
]{geometry}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{xparse}
\usepackage{changepage}% for: {adjustwidth}
\usepackage{ragged2e}% for: better line-breaking in narrow text blocks
\usepackage{enumitem}
\setlist[description]{
font={\sffamily\bfseries},
labelsep=0pt,
labelwidth=\transcriptlen,
leftmargin=\transcriptlen,
}
% Lengths:
\newlength{\transcriptlen}
\newlength{\glosswidth}
% How much space for the glosses?
\setlength{\glosswidth}{3cm}
\newenvironment{radio}%
{\begin{adjustwidth}{}{\glosswidth}
\begin{description}}%
{\end{description}
\end{adjustwidth}}
\NewDocumentCommand {\setspeaker} { mo } {%
\IfNoValueTF{#2}
{\expandafter\newcommand\csname#1\endcsname{\item[#1:]}}%
{\expandafter\newcommand\csname#1\endcsname{\item[#2:]}}%
\IfNoValueTF{#2}
{\settowidth{\transcriptlen}{#1}}%
{\settowidth{\transcriptlen}{#2}}%
}
% Easiest to put the longest name last...
\setspeaker{mike}[MIKE]
\setspeaker{thresa}[THRESA]
\setspeaker{andrew}[ANDREW]
% How much of a gap between speakers and text?
\addtolength{\transcriptlen}{1em}%
% glossing command
\newcommand{\gloss}[2]{%
\glmaintext{#1}%
\glmark
\marginpar{\hspace*{-\glosswidth}%
\RaggedRight\glmargintext{#2}}}
\newcommand*{\glmark}{}
\newcommand*{\glmaintext}[1]{\emph{#1}}
\newcommand*{\glmargintext}{\footnotesize\sffamily\itshape}
\begin{document}
\noindent
I wan't to typeset a radio script, which will look like this example.
Basically, a column with the name of the role and another column with
the text.
Because I'm using this script for non-native speakers also, I'd like
to implement a third column where annotations for vocabulary can be
made. The third column should be roughly 20\%--25\% of the total width
of the page.
This is how I would imagine it to look like:
\begin{radio}
\mike Hello, how are you \gloss{doing}{to do: etwas Machen}, I'm
wondering whether any of the issues with other answers will still
\gloss{apply}{to apply: anwenden}.
\andrew This is just one line.
\thresa This is a multiple line text without annotations on the
right side.
\andrew This is just one line.
\thresa This is a multiple line text without annotations on the
right side.
\thresa This is a multiple line text without annotations on the
right side.
\andrew This is just one line.
\end{radio}
%
Because I'm using this script for non-native speakers also, I'd like
to implement a third column where annotations for vocabulary can be
made. The third column should be roughly 20\%--25\% of the total width
of the page.
\end{document}
Since your question does not have an MWE, I have had to make a number of assumptions (such as \documentclass)....
