You can using this mapping:
<list name="Dates" table="PlanDates">
<key column="PlanId"/>
<index column="Position" />
<element column="Value" type="System.DateTime"/>
</list>
The xml node <index column="Position" />
references the position of the element in the list.
And your class would exactly the way you wanted it:
public class Plan
{
public Plan()
{
this.Dates = new List<DateTime>();
}
public virtual int Id { get; set; }
public virtual IList<DateTime> Dates { get; set; }
}
You can find more info here.