It appears that you can't explicitly set the length of a shared list. For example:
use strict;
use warnings;
use threads;
use threads::shared;
my $lItems = [qw(a b c)];
$#$lItems -= 1;
print("Length: " . scalar(@$lItems) . "\n");
my $lItems2 : shared = shared_clone([qw(a b c)]);
$#$lItems2 -= 1;
print("Length: " . scalar(@$lItems2) . "\n");
prints 2 for the first list, but prints 3 for the second. This should be added to the documentation (would have saved me many early morning hours of debugging)