First of all, set the Pathauto pattens for the content type testimonial to /testimonials/[node:title]. This could later on be useful if you display one testimonial as a node, for instance if you don't include the full node in the view below.
Then create a view that lists all your testimonials, and show them as a page on the URL /testimonials. Use the style Unformatted, and make sure you include the Title in the rows class (using the "Style > Style > Settings" in views), you could be use Anchor-[title] (show you later on why the 'Anchor_'-part).
Then make a special versions of the views-view-unformatted.tpl.php (eg. views-view-unformatted--.tpl.php) and put it in your own themes folder (where it fits).
<?php foreach ($rows as $id => $row): ?>
<div <?php if ($classes_array[$id]) { print 'class="' . $classes_array[$id] .'"'; } ?>>
<?php print $row; ?>
</div>
<?php endforeach; ?>
Make a small PHP snippet that fetches the rows styles and then find the one class that contains the "Anchor-Title".
<?php foreach ($rows as $id => $row): ?>
<div <?php if ($classes_array[$id]) { print 'class="' . $classes_array[$id] .'"'; } ?>>
<?php
if ($classes_array[$id]) {
$classes = explode(" ", $classes_array[$id]);
for ($i=0;$i<count();$i++) {
if (strpos($classes[$i], "Anchor_") === 0) {
list($tmp, $anchor) = explode("_", $classes[$i]);
?>
<a name="<?php print $anchor; ?>"></a>
<?php
}
}
}
?>
<?php print $row; ?>
</div>
<?php endforeach; ?>
Perhaps the code can be optimized, but that's only something to get you started...
BTW: To create a "menu" on the top, you could add a header to the view that's containing a view that makes links out of titles. Eg.
<a href="#Title">Link text</a>