Loading events just for the presented month can be achieved by implementing TKCaledarDelegate's method WillNavigateToDate. You can check the month of the date that the calendar is going to navigate and if it is different than the current month invoke the Update method of the calendar's presenter. This would request again EventsForDate. This way you can load only the events of interest.
You can remove the circle by setting size of the EventShape property of TKCalendarDayCellStyle to CGSize.Empty and draw the events as text like in the code below:
UpdateVisualsForCell(TKCalendar calendar, TKCalendarCell cell)
((TKCalendarDayCell)cell).Style.EventShape.Size = CGSize.Empty;
I can confirm that currently we have an issue with setting the MaxEventsCount property. I have logged it and updated your Telerik points for reporting this.
Telerik by Progress
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Telerik Feedback Portal
and vote to affect the priority of the items