Metapost would give better results, but if you wish to use TikZ, decorations.text
offers a variety of options.
For example:
\documentclass[tikz,border=10pt,multi]{standalone}
\usetikzlibrary{decorations.text}
\begin{document}
\begin{tikzpicture}
\draw [thick] (0,0) circle (3cm);
\foreach \i/\j/\k in {0/something/tadpole,45/anything/cauldron,90/another/bread soup,135/whatever/rock candy,180/whenever/lollipop,225/whoever/Bell of Bow,270/why ever/seesaw,315/nothing/roundabout} {
\draw [black] (0,0) -- (\i:3cm);
\path [decorate, decoration={text along path, text=\j, text align=center}] (\i:27.5mm) arc (\i:{\i+45}:27.5mm);
\path [decorate, decoration={text along path, text=\k, text align=center}] (\i:24mm) arc (\i:{\i+45}:24mm);
}
\end{tikzpicture}
\end{document}

EDIT
To align the text nicely with different directions, it is probably best to use text effects along path
. This is slower, but it makes it possible to align each character vertically. For example:
\documentclass[tikz,border=10pt,multi]{standalone}
\usetikzlibrary{decorations.text}
\begin{document}
\begin{tikzpicture}
[
arc text/.style={%
decorate,
decoration={%
text effects along path,
text={#1},
text align=center,
text effects/.cd,
text along path,
characters={anchor=mid},
}
}
]
\draw [thick] (0,0) circle (3cm);
\foreach \i/\j/\k [evaluate=\i as \m using {\i < 180 ? \i+45 : \i }, evaluate=\i as \n using { \i < 180 ? \i : \i+45 } ] in {0/something/tadpole,45/anything/cauldron,90/another/bread soup,135/whatever/rock candy,180/whenever/lollipop,225/whoever/Bell of Bow,270/why ever/seesaw,315/nothing/roundabout} {
\draw [black] (0,0) -- (\i:3cm);
\path [arc text/.expanded=\j] (\m:27.5mm) arc (\m:\n:27.5mm);
\path [arc text/.expanded={\k}] (\m:24mm) arc (\m:\n:24mm);
}
\end{tikzpicture}
\end{document}

text along path
in the PGFmanual or on this site to get an idea how to approach this. – Qrrbrbirlbel May 23 '16 at 19:48