Powershell, 488
0..11|%{'On the {0} day of christmas my true love gave to me {1}'-f(
(
'first',
'second',
'third',
'fourth',
'fifth',
'sixth',
'seventh',
'eighth',
'ninth',
'tenth',
'eleventh',
'twelveth'
)[$_],
($_..0|% {
(
'a partridge in a pear tree',
'two turtle doves and',
'three french hens',
'four calling birds',
'five golden rings',
'Six geese-a-laying',
'Seven swans-a-swimming',
'Eight maids-a-milking',
'Nine ladies dancing',
'Ten lords-a-leaping',
'Eleven pipers piping',
'Twelve drummers drumming'
)[$_]
}|out-string)
)
}
I was trying to do a clever switching statement to get the "and" on the partridge for all but the first verse.
But, because the question absolves us of punctuation, we can just append the "and" to the doves.