You can get closer with implementing few more
public class Point where T : struct, IComparable, IFormattable, IConvertible,
IComparable, IEquatable {
}
The signature conforms to DateTime too. I'm not sure if you will be able to specify more types from the framework. Anyway this only solves part of the problem. To do basic numeric operations you will have to wrap your numeric types and use generic methods instead of standard operators. See this SO question for a few options.