Use two separate TextBoxes, one for date and one for time. For the date one, use the ASP.NET Ajax Control Toolkit Calendar control, as someone else pointed out.
For the time TextBox, have a look at the MaskedEditExtender control in the same toolkit. You can set it to display ::__ AM/PM and let the user fill in. You can fill with zeros if they just type "3p" and tab out.
To use it, you need a TextBox. You set the MaskedEditExtender's TargetControlID to the TextBox's ID. Here are some attributes you'll need to set in the MaskedEditExtender tag for time entry:
Mask="99:99"
AutoCompleteValue="00:00"
AcceptAMPM="true"
MaskType="Time"
Also, if you get a weird FindControl-related error, make sure that your MaskedEditExtenders all have IDs set.