Inside SQL Server
SQL Server CONVERT: http://msdn.microsoft.com/en-us/library/ms187928.aspx
No, this particular format is not available, so you do what you have. I usually prefer varchar column size instead of leaving it non-standard.
I also noticed that you have 106, i.e. DD-MMM-YYYY, not DD-MMM-YY. Did you mean to use 6?
REPLACE(CONVERT (varchar(9), DateTimeColumn, 6), ' ', '-')
SSRS
=Format(Fields!DateTimeColumn.Value, "dd-MMM-yy")