There is only a single instance of static variables across the app domain so all calls see the same string builder. You mentioned services but you haven't really explained how this code is called. If you are looking to time how long a call takes then just don't use static variables....create an instance of StringBuilder in your Calculate method and pass that to the BuildMessage and DisplayMessage methods so that they all access the same instance.
public void CalculateTimeTake(string isoCountryCode)
{
try
{
StringBuild sb = new StringBuilder();
DateTime startTime = DateTime.Now;
TimeCalculator.BuildMessage(sb, "Service Started", true, startTime);
TimeCalculator.BuildMessage(sb, "Service Ended", false, startTime);
TimeCalculator.DisplayMessage(sb);
}
catch (Exception exception)
{
}
Update the other methods to use the StringBuilder you pass in rather than the static version.